Tidak Boleh Mempercayai Kiraan Baris dalam phpMyAdmin?
Dalam phpMyAdmin, anda mungkin menghadapi percanggahan yang ketara dalam anggaran kiraan baris untuk jadual yang mempunyai kekal tidak berubah. Ketidakkonsistenan yang membingungkan ini boleh dikaitkan dengan pengendalian pengiraan baris oleh enjin pangkalan data asas.
Tidak seperti jadual MyISAM, yang mengekalkan kiraan baris yang tepat, jadual InnoDB seperti dalam contoh anda tidak mempunyai ciri ini. Untuk menentukan kiraan baris yang tepat, InnoDB mesti mengimbas dengan teliti setiap baris dalam jadual, menjadikan pertanyaan SELECT COUNT(*) mahal untuk jadual besar.
phpMyAdmin menggunakan pertanyaan SHOW TABLE STATUS untuk mendapatkan semula anggaran baris kira daripada InnoDB. Anggaran ini, bagaimanapun, berbeza-beza setiap kali anda melaksanakannya, yang berpotensi mengakibatkan sisihan yang besar daripada kiraan sebenar.
Manual MySQL mengakui pengehadan ini: "Untuk enjin storan seperti InnoDB, nilai ini [dari SHOW TABLE STATUS ] ialah anggaran, dan mungkin berbeza daripada nilai sebenar sebanyak 40 hingga 50%."
Untuk kiraan baris yang tepat, manual mengesyorkan menggunakan SELECT COUNT(*). Selain itu, dokumentasi InnoDB menerangkan bahawa urus niaga serentak boleh menyebabkan kiraan baris yang berbeza "dilihat" serentak, menjadikan pengiraan baris dalaman tidak praktikal.
Oleh itu, walaupun SHOW TABLE STATUS mungkin memberikan anggaran, ia tidak dapat memberikan yang mutlak. ketepatan. Untuk pengiraan baris yang tepat dan konsisten, pertimbangkan untuk melaksanakan jadual kaunter yang diselenggara oleh aplikasi anda atau menggunakan cache pertanyaan MySQL untuk mengoptimumkan prestasi.
Atas ialah kandungan terperinci Mengapakah phpMyAdmin Menunjukkan Kiraan Baris Tidak Konsisten untuk Jadual InnoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!