-1

如果

SELECT attr FROM t WHERE attr2>=0 LIMIT 10000;

耗时约 0.26 秒。多少时间(非常粗略)

SELECT attr FROM t WHERE attr2>700;

带跑?

mysql> EXPLAIN SELECT attr FROM t WHERE attr2>700;
+----+-------------+---------------+------+---------------+------+---------+------+--------+-------------+
| id | select_type | table         | type | possible_keys | key  | key_len | ref  | rows   | Extra       |
+----+-------------+---------------+------+---------------+------+---------+------+--------+-------------+
|  1 | SIMPLE      |      t        | ALL  | NULL          | NULL | NULL    | NULL | 769111 | Using where | 
+----+-------------+---------------+------+---------------+------+---------+------+--------+-------------+

编辑:更多信息,(以防万一)

我最近更新了表中大约 5000 行中的 1 或 2 个属性。

当我跑步SELECT attr FROM t WHERE attr2>700;时,它在我中止之前的 20 分钟内没有完成。

4

1 回答 1

1

让我们试试数学;)

10.000 行 => 0.26 秒

769.111 行 => (769.111 * 0.26 / 10.000) =>大约 20秒

但这是纯粹的理论估计。

维基百科交叉乘法

于 2012-06-25T21:51:59.913 回答