使用 MySQL (5.1.66) 解释说它只会扫描 72 行,而“慢日志”报告整个表已被扫描 (Rows_examined: 5476845) 这怎么可能?我无法弄清楚查询有什么问题
*name*
是一个字符串唯一索引,
*date*
只是一个常规的 int 索引
这是解释
EXPLAIN SELECT *
FROM table
WHERE name LIKE 'The%Query%'
ORDER BY date DESC
LIMIT 3;
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE 表索引名称日期 4 NULL 72 使用 where
慢日志的输出
# Query_time: 5.545731 Lock_time: 0.000083 Rows_sent: 1 Rows_examined: 5476845
SET timestamp=1360007079;
SELECT * FROM table WHERE name LIKE 'The%Query%' ORDER BY date DESC LIMIT 3;