Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mendapatkan MySQL untuk Menggunakan Indeks untuk Pertanyaan Lihat?

Bagaimanakah Saya Boleh Mendapatkan MySQL untuk Menggunakan Indeks untuk Pertanyaan Lihat?

Barbara Streisand
Lepaskan: 2024-11-12 01:19:02
asal
788 orang telah melayarinya

How Can I Get MySQL to Use Indices for View Queries?

Mendapatkan MySQL untuk Menggunakan Indeks untuk Pertanyaan Lihat

Pertanyaan: Bagaimanakah cara saya menggalakkan MySQL memanfaatkan indeks untuk pertanyaan paparan?

Jawapan: Walaupun menggunakan paparan dalam MySQL mungkin tidak sesuai, MySQL boleh menggunakan indeks untuk pertanyaan paparan apabila disediakan dengan struktur indeks yang sesuai.

Penjelasan Terperinci:

Pertanyaan paparan MySQL berbeza daripada pangkalan data lain kerana pengoptimum tidak "menolak" predikat daripada pertanyaan luar ke dalam pertanyaan paparan. Dalam kes ini, penapis pertanyaan luar menapis pada happen_in, tetapi MySQL tidak menggunakan penapis ini apabila melaksanakan pertanyaan paparan.

Akibatnya, pertanyaan paparan diproses secara berasingan, mewujudkan jadual sementara (jadual terbitan) . Apabila pertanyaan luar dijalankan, ia menggunakan jadual terbitan sebagai sumber baris, menilai happen_in = 2006 predikat kemudian.

Untuk meningkatkan prestasi, indeks penutup boleh ditakrifkan:

CREATE INDEX highscores_IX3 ON highscores (player, happened_in, score)
Salin selepas log masuk

Indeks ini termasuk semua lajur yang dirujuk dalam pertanyaan paparan, dengan pemain sebagai lajur utama (predikat kesamaan) diikuti dengan happen_in (GROUP BY). Menyertakan skor menjadikan indeks sebagai indeks penutup, membolehkan MySQL mendapatkan semula semua data yang diperlukan daripada indeks sahaja.

Sebagai alternatif, pertimbangkan untuk menggunakan pertanyaan kendiri yang tidak menggunakan jadual terbitan, yang boleh memberikan prestasi yang lebih baik dalam beberapa kes :

SELECT player, MAX(score) AS highest_score, happened_in
FROM highscores
WHERE player = 24 AND happened_in = 2006
GROUP BY player, happened_in
Salin selepas log masuk

Dengan pengubahsuaian ini dan indeks penutup yang sesuai, MySQL seharusnya dapat mengoptimumkan pertanyaan paparan, meningkatkan prestasi dengan ketara dengan memanfaatkan indeks yang tersedia.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan MySQL untuk Menggunakan Indeks untuk Pertanyaan Lihat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan