Percanggahan dalam Kiraan Baris Dikembalikan oleh "explain" dan "count()": Pandangan Lebih Dekat
Situasi yang membingungkan timbul apabila membandingkan bilangan baris yang dikembalikan oleh "terangkan" dan kiraan baris sebenar yang diperoleh daripada "count()". Walaupun kelihatan intuitif untuk menganggap bahawa "terangkan" memberikan anggaran yang tepat tentang bilangan baris yang diambil, ini tidak selalu berlaku.
Memahami Perintah "terangkan"
Arahan "terangkan" sebenarnya tidak melaksanakan pertanyaan; sebaliknya, ia menganalisis pelan pertanyaan dan menganggarkan bilangan baris yang akan diproses. Anggaran ini adalah berdasarkan pelbagai faktor, termasuk statistik yang dikekalkan tentang jadual yang terlibat.
Mengapa Baris yang Dilaporkan oleh "explain" Mungkin Berbeza
Percanggahan antara "explain " output dan kiraan baris sebenar boleh disebabkan oleh sebab berikut:
Contoh Percanggahan
Pertimbangkan contoh berikut:
mysql> select count(*) from table where relation_title='xxxxxxxxx'; +----------+ | count(*) | +----------+ | 1291958 | +----------+ mysql> explain select * from table where relation_title='xxxxxxxxx'; +----+-------------+---------+- | id | select_type | rows | +----+-------------+---------+- | 1 | SIMPLE | 1274785 | +----+-------------+---------+-
Seperti yang anda lihat, "terangkan" menganggarkan bahawa pertanyaan akan memproses 1274785 baris, manakala "count(*)" mengembalikan kiraan 1291958 baris. Percanggahan ini timbul disebabkan oleh ketidaktepatan anggaran dan statistik lapuk yang dijelaskan di atas.
Kepentingan Kiraan Baris Tepat
Mendapatkan kiraan baris yang tepat adalah penting untuk mengoptimumkan pertanyaan dan mengelakkan overhead yang tidak diperlukan . Dengan memahami batasan "terangkan", pembangun boleh membuat keputusan termaklum sama ada untuk bergantung pada anggarannya atau mencari kaedah alternatif untuk menentukan bilangan baris yang diproses.
Atas ialah kandungan terperinci Mengapa 'terangkan' Melaporkan Kiraan Baris Berbeza Daripada 'count()'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!