Mengatasi Pertanyaan "SELECT COUNT(*)" Lambat pada MySQL
Pertanyaan anda pada jadual change_event, mengira baris yang melebihi change_event_id tertentu , sedang mengalami kelewatan yang ketara. Tapi kenapa? Mari kita selidiki kemungkinan penyebabnya.
Menyingkap Gelagat InnoDB
Enjin InnoDB MySQL menggunakan kunci primer berkelompok, bermakna kunci utama disimpan bersama data baris dalam halaman data, sebaliknya daripada halaman indeks yang berasingan. Akibatnya, imbasan julat, seperti anda, memerlukan pengimbasan melalui semua baris yang berpotensi lebar dalam halaman data. Faktor ini diburukkan lagi oleh lajur xml_diff jadual, jenis data TEKS yang melambatkan lagi pemprosesan.
Strategi Pengoptimuman
Untuk mempercepatkan pertanyaan, dua pendekatan patut dipertimbangkan :
Petua Tambahan:
Untuk meningkatkan lagi prestasi, pertimbangkan untuk menukar lajur change_event_id kepada bigint unsigned. Langkah ini menghalang nilai negatif dan juga boleh memperkemas pemprosesan.
Atas ialah kandungan terperinci Mengapa pertanyaan \'SELECT COUNT(*)\' saya pada jadual change_event begitu perlahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!