【问题标题】:How come, the number of rows is not the same as SELECT COUNT(*) FROM table [duplicate]怎么回事,行数和SELECT COUNT(*) FROM table不一样[重复]
【发布时间】:2013-06-28 14:59:30
【问题描述】:

我对 DB 没有太多经验,但这件事有点令人困惑: 首先我做了:

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)

但是行数与我从上次查询中得到的数字不同。 你能解释一下为什么吗?是错误还是预期结果?

【问题讨论】:

    标签: mysql sql database


    【解决方案1】:

    预期。

    EXPLAIN uses statistics 关于制定查询计划的索引,而不是实际的索引(或数据)。

    【讨论】:

    • 这取决于引擎,AFAIK
    猜你喜欢
    • 2014-12-02
    • 2014-12-12
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 2019-09-04
    相关资源
    最近更新 更多