3

mysqlの列の順序が重要であることをどこかで読みました。インデックス付きの列を参照していると思います。

質問:列の順序が重要な場合、いつ、なぜそれが重要ですか?

私が尋ねる理由は、以下のようなテーブルがmysqlにあるためです。プライマリインデックスは左側にあり、右端にインデックスがあります。これは悪いですか?これはMyISAMテーブルであり、主に選択に使用されます(挿入、削除、更新はありません)。

-----------------------------------------------
|  Primary index | data1|  data2  | d3| Index |
-----------------------------------------------
|      1         |   A  |   cat   | 1 |   A   | 
|      2         |   B  |  toads  | 3 |   A   |
|      3         |   A  |  yabby  | 7 |   B   |
|      4         |   B  | rabbits | 1 |   B   |
-----------------------------------------------
4

1 に答える 1

4

列の順序は、インデックスを定義する場合にのみ重要です。これは、インデックスがクエリの実行に適しているかどうかに影響するためです。(これは、MySQLだけでなく、すべてのRBDMSに当てはまります)

例えば

MyIndex(a, b, c)この順序で列に定義されたインデックス。

次のようなクエリ

select a from mytable
where c = somevalue

おそらくそのインデックスを使用してクエリを実行することはありません(行数、列の選択性などのいくつかの要因によって異なります)

一方、次のように定義されたインデックスを使用することを選択する可能性が最も高いです。MyIndex2(c,a,b)

更新:use-the-index-luke.comを参照してください(Gregに感謝)。

于 2012-05-27T06:32:47.280 に答える