Adakah Penggunaan MySQL Views Suatu Amalan Memudaratkan?
Walaupun nasihat mencadangkan sebaliknya, pandangan sememangnya boleh memanfaatkan peningkatan indeks apabila digunakan dalam MySQL . Timbul persoalan tentang bagaimana fungsi tersebut boleh dilaksanakan.
Jawapannya: Menyediakan Indeks yang Sesuai
Penyelesaian terletak pada menawarkan indeks yang MySQL boleh gunakan secara aktif. Dalam kes ini, indeks "penutup" adalah paling sesuai, seperti:
CREATE INDEX highscores_IX3 ON highscores (player, happened_in, score)
Dengan indeks ini disediakan, pengoptimum MySQL seharusnya dapat menggunakannya untuk pertanyaan SELECT, menghasilkan "Menggunakan indeks " pengisytiharan yang boleh dikaitkan dengan pemain WHERE = 24 predikat.
Walau bagaimanapun, adalah penting untuk mengakui bahawa MySQL tidak mungkin menggunakan indeks happen_in untuk pertanyaan paparan kerana tingkah lakunya memisahkan pelaksanaan "pertanyaan pandangan" dalaman daripada luaran pertanyaan. Akibatnya, indeks yang ditakrifkan untuk happen_in tidak akan digunakan semasa fasa pembentukan pertanyaan.
Pengoptimuman Prestasi dengan Indeks Penutup
Untuk mengoptimumkan prestasi pertanyaan paparan, "penutup indeks" yang merangkumi semua lajur yang dirujuk dalam pertanyaan (cth., ON skor tinggi (pemain, happen_in, skor)) adalah disyorkan. Jenis indeks ini membolehkan pengambilan data terus daripada halaman indeks tanpa memerlukan carian halaman dalam jadual asas, menghasilkan kaedah akses "Menggunakan indeks".
Perbandingan dengan Pertanyaan Kendiri tanpa Jadual Terbitan
Sebagai perbandingan, pertimbangkan pertanyaan kendiri yang setara dengan pertanyaan paparan:
SELECT player, MAX(score) AS highest_score, happened_in FROM highscores WHERE player = 24 AND happened_in = 2006 GROUP BY player, happened_in
Indeks penutup untuk pertanyaan ini (cth., ON skor tinggi (pemain, happen_in, skor)) juga boleh digunakan, menghapuskan keperluan untuk jadual "turunan" perantaraan.
Berhati-hati dan Pertimbangan
Walaupun pandangan sememangnya tidak merugikan, adalah penting untuk memahami bagaimana MySQL memproses pertanyaan paparan, yang berbeza daripada pendekatan yang digunakan oleh pangkalan data lain. Pengetahuan ini membolehkan pembangun memanfaatkan potensi pandangan dengan berkesan sambil mengurangkan masalah prestasi.
Atas ialah kandungan terperinci Bolehkah MySQL Views Memanfaatkan Peningkatan Indeks untuk Peningkatan Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!