Ini adalah masalah yang diketahui bahwa innodb lambat
SELECT count(*) FROM Table
Karena itu saya menghindari itu. Tapi saya perhatikan bahwa setiap kali saya login ke phpmyadmin, itu akan secara otomatis mengeksekusi count(*)
tabel innodb saya dengan 19k baris, yang bisa memakan waktu hingga satu menit untuk dieksekusi. Namun itu tidak memulai seperti count(*)
untuk tabel innodb lainnya dengan 4 juta baris.
Petunjuk lain, di phpmyadmin, di bawah kolom Records, jumlah record untuk tabel 19k-baris menunjukkan nilai yang tepat sedangkan tabel 4-juta-baris menunjukkan sekitar.
Saya mengerti tabel innodb memberikan estimasi jumlah baris. Tetapi tampaknya untuk tabel yang lebih kecil, dalam hal ini dengan baris 19k, phpmyadmin memutuskan untuk melakukan count(*)
alih - alih hanya memberikan estimasi.
Pertanyaannya adalah, adakah cara untuk menghentikan phpmyadmin dari melakukan penghitungan seperti itu di tabel innodb saya? Tidak apa-apa untuk hanya memberikan estimasi alih-alih melakukan hitungan baris mahal setiap kali saya menyegarkan layar phpmyadmin saya.
20000
dengan angka yang lebih kecil, mis.300
, Simpan file, segarkan phpmyadmin dan Anda siap berangkat.Jawaban:
Edit config.inc.php, dan ubah pengaturan untuk MaxExactCount .
sumber
phpMyAdmin hanya akan melakukan aktual
select count(*)
jika perkiraan jumlah baris berada dalam ambang batas yang ditetapkan (standarnya adalah 500 ribu tergantung pada versi Anda):Cukup atur ambang ke angka yang lebih kecil untuk menghindari pointless
select count(*)
s.sumber