我有以下表结构。
town:
id (MEDINT,PRIMARY KEY,autoincrement),
town(VARCHAR(150),not null),
lat(FLOAT(10,6),notnull)
lng(FLOAT(10,6),notnull)
我经常使用“SELECT * FROM town ORDER BY town”查询。我尝试索引城镇,但它没有被使用。那么索引的最佳方式是什么,以便我可以加快查询速度。
使用EXPLAIN(镇上有独特的指数):
mysql> EXPLAIN SELECT * FROM studpoint_town order by town \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: studpoint_town
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 3
Extra: Using filesort
1行(0.00秒)
ragards, 拉维。答案 0 :(得分:1)
您的EXPLAIN
输出表明当前studpoint_town
表只有3行。如the manual中所述:
当MySQL使用表扫描来解析查询时,
EXPLAIN
的输出在ALL
列中显示type
。这通常在以下条件下发生:[...]
- 该表非常小,执行表扫描比使用键查找更麻烦。这对于行少于10行且行长度较短的表来说很常见。在这种情况下不要担心。