【发布时间】:2015-04-22 12:12:27
【问题描述】:
我有一个包含 40000 行的简单 MySQL 表:
id CHAR(36) (i am using UUIDs as primary keys)
number_from (INT)
number_to (INT)
有 3 个索引:
primary(id)
number_from(number_from)
number_to(number_to)
看起来像下面这样的简单查询需要相当大 时间量(例如 30 秒或更长时间):
SELECT * FROM numbers WHERE (number_from >= 703911711 AND number_to <= 703911800)
我可以做些什么来优化性能?
【问题讨论】:
-
请将
EXPLAIN SELECT * FROM.....30s 的输出仅在 40k 行上发布,即使没有使用索引,也似乎相当多。还要发布来自SHOW CREATE TABLE numbers的输出,以便我们可以在上下文中看到完整的定义。 -
不要选择 * 明确定义字段名称
标签: mysql performance indexing range