Rumah >pangkalan data >tutorial mysql >Mengapa Paparan Menunjukkan Kos yang Jauh Lebih Tinggi Daripada Melaksanakan Pertanyaan Yang Sama pada Jadual Dasar?
Isu Prestasi MySQL View
Isu:
Seorang pengguna mempunyai pertanyaan terhadap jadual dengan 100,000 baris, yang menunjukkan kos yang tinggi (5200) apabila menapis berdasarkan keadaan tertentu. Mencipta paparan dengan pertanyaan agregat yang sama dan penapisan pada paparan menghasilkan kos yang jauh lebih tinggi (100,000).
Penjelasan:
Percanggahan dalam kos adalah disebabkan oleh algoritma paparan yang digunakan. Algoritma lalai untuk paparan ialah tergoda, yang mendapatkan semula semua baris daripada jadual asas dan kemudian menggunakan penapis. Ini boleh mengakibatkan prestasi yang lemah apabila penapisan adalah berdasarkan peratusan kecil baris.
Penyelesaian:
Untuk menyelesaikan isu ini, paparan harus ditakrifkan dengan Algoritma gabung, yang membolehkan indeks pada jadual asas digunakan dan meningkatkan kecekapan penapisan. Ini boleh dilakukan menggunakan sintaks berikut:
<code class="sql">CREATE OR REPLACE VIEW vw_users AS SELECT state, COUNT(*) AS cnt FROM users WITH MERGE VIEW;</code>
Dengan algoritma gabungan, pertanyaan pada paparan kini boleh memanfaatkan indeks pada lajur keadaan, mengurangkan kosnya dan meningkatkan prestasi.
Atas ialah kandungan terperinci Mengapa Paparan Menunjukkan Kos yang Jauh Lebih Tinggi Daripada Melaksanakan Pertanyaan Yang Sama pada Jadual Dasar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!