Mysql 为什么行数与表中的SELECT COUNT(*)不同
我对DB没有太多经验,但这件事有点让人困惑: 首先我做了:Mysql 为什么行数与表中的SELECT COUNT(*)不同,mysql,sql,database,Mysql,Sql,Database,我对DB没有太多经验,但这件事有点让人困惑: 首先我做了: mysql> EXPLAIN SELECT COUNT(*) FROM tweets; +----+-------------+--------+-------+---------------+---------+---------+------+----------+-------------+ | id | select_type | table | type | possible_keys | key | key
mysql> EXPLAIN SELECT COUNT(*) FROM tweets;
+----+-------------+--------+-------+---------------+---------+---------+------+----------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------+-------+---------------+---------+---------+------+----------+-------------+
| 1 | SIMPLE | tweets | index | NULL | user_id | 4 | NULL | 18683420 | Using index |
+----+-------------+--------+-------+---------------+---------+---------+------+----------+-------------+
1 row in set (0.03 sec)
然后我尝试了这个:
mysql> SELECT COUNT(*) FROM tweets;
+----------+
| COUNT(*) |
+----------+
| 15254792 |
+----------+
1 row in set (9.60 sec)
但行数和我上次查询得到的行数不同。
你能解释一下为什么吗?这是一个错误还是一个预期结果?预期结果
解释用于制定查询计划的索引,而不是实际的索引(或数据)。这取决于引擎,AFAIK