0

我有以下表结构。

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”查询。我尝试索引城镇,但没有被使用。那么索引的最佳方法是什么,以便我可以加快查询速度。

使用解释(唯一索引出现在城镇):

 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 秒)

拉加兹,拉维。

4

1 回答 1

1

您的EXPLAIN输出表明当前studpoint_town表只有 3 行。如手册中所述

当 MySQL 使用表扫描来解析查询时,列中EXPLAIN显示的输出。这通常发生在以下情况下:ALLtype

[...]

  • 该表是如此之小,以至于执行表扫描比费心查找键要快。这对于少于 10 行且行长度较短的表很常见。在这种情况下不要担心。
于 2012-06-10T08:29:50.610 回答