0

私は次のテーブル構造を持っています。

town:

id (MEDINT,PRIMARY KEY,autoincrement), 
town(VARCHAR(150),not null),
lat(FLOAT(10,6),notnull)
lng(FLOAT(10,6),notnull)

私はよく「SELECT*FROM TownORDERBYtown」クエリを使用します。町のインデックスを作成してみましたが、使用されていません。では、クエリを高速化できるようにインデックスを作成するための最良の方法は何ですか。

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、ravi。

4

1 に答える 1

1

出力EXPLAINは、現在studpoint_townテーブルに 3 行しかないことを示しています。マニュアルで説明されているように:

MySQL がテーブル スキャンを使用してクエリを解決すると、列に出力がEXPLAIN表示されます。これは通常、次の条件下で発生します。ALLtype

[...]

  • テーブルが非常に小さいため、キー ルックアップに煩わされるよりも、テーブル スキャンを実行する方が高速です。これは、10 行未満で行の長さが短いテーブルで一般的です。この場合は心配しないでください。
于 2012-06-10T08:29:50.610 に答える