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 |
+----+-------------+---------+-
我认为“解释 select * from table where relation_title='xxxxxxxxx';”按索引返回relation_title='xxxxxxxxx'的行。但它比真实的数字要小。
它显示了为了获得结果而运行了多少行。
数据错误的原因是 EXPLAIN 不准确,它根据存储的有关表的信息对数据进行猜测。
这是非常有用的信息,例如,在对许多表进行联接时,您希望确保没有遍历整个联接表来获取每一行的一行信息。
这是对 608 行表的测试。
SELECT COUNT(id) FROM table WHERE user_id = 1
Result:
COUNT(id)
512
这是解释
EXPLAIN SELECT COUNT(id) FROM table WHERE user_id = 1
Result:
id rows
1 608
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)