Tidak seperti tabel MyISAM, tabel InnoDB tidak melacak berapa banyak baris yang terdapat dalam tabel.
Karena itu, satu-satunya cara untuk mengetahui jumlah baris yang tepat dalam tabel InnoDB adalah dengan memeriksa setiap baris dalam tabel dan mengumpulkan hitungan. Oleh karena itu, pada tabel InnoDB besar, melakukan SELECT COUNT(*) FROM innodb_table
kueri bisa sangat lambat karena melakukan pemindaian tabel penuh untuk mendapatkan jumlah baris.
phpMyAdmin menggunakan kueri seperti SHOW TABLE STATUS
untuk mendapatkan perkiraan jumlah baris dalam tabel dari mesin (InnoDB). Karena ini hanya perkiraan, itu bervariasi setiap kali Anda menyebutnya, terkadang variasinya bisa cukup besar, dan terkadang mendekati.
Berikut adalah posting blog informatif tentang COUNT(*) untuk Tabel InnoDB oleh Percona.
Halaman manual MySQL untuk TAMPILKAN STATUS TABEL menyatakan:
Jumlah baris. Beberapa mesin penyimpanan, seperti MyISAM, menyimpan jumlah yang tepat. Untuk mesin penyimpanan lain, seperti InnoDB, nilai ini merupakan perkiraan, dan dapat bervariasi dari nilai sebenarnya sebanyak 40 hingga 50%. Dalam kasus seperti itu, gunakan SELECT COUNT(*) untuk mendapatkan penghitungan yang akurat.
Halaman di Pembatasan InnoDB masuk ke beberapa detail lebih lanjut:
SHOW TABLE STATUS tidak memberikan statistik akurat pada tabel InnoDB, kecuali untuk ukuran fisik yang disediakan oleh tabel. Jumlah baris hanyalah perkiraan kasar yang digunakan dalam pengoptimalan SQL.
InnoDB tidak menyimpan jumlah baris internal dalam tabel karena transaksi bersamaan mungkin "melihat" jumlah baris yang berbeda pada waktu yang sama. Untuk memproses
SELECT COUNT(*) FROM t
pernyataan, InnoDB scansan indeks tabel, yang membutuhkan beberapa waktu jika indeks dicatat sepenuhnya di buffer pool. Jika tabel Anda tidak sering berubah, menggunakan cache kueri MySQL adalah solusi yang baik. Untuk mendapatkan penghitungan cepat, Anda harus menggunakan tabel penghitung yang Anda buat sendiri dan biarkan aplikasi Anda memperbaruinya sesuai dengan sisipan dan menghapusnya. Jika perkiraan jumlah baris cukup,SHOW TABLE STATUS
dapat digunakan. Lihat Bagian 14.3.14.1, “Kinerja InnoDB Kiat Menyetel” .