估计SQL查询时间

时间:2012-06-25 21:49:01

标签: mysql timing

如果

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分钟内没有完成。

1 个答案:

答案 0 :(得分:1)

让我们试试数学;)

10.000行=> 0.26s

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

但这是一个纯理论估计。

维基百科Cross-multiplication