0

MySQl InnoDB では、btree インデックスに含まれる列の数は重要ですか?

例えば:

Key1 contains cols (col1, col2, col3)

または

Key1 contains col1
Key2 contains col2
Key3 contains col3

これは問題ですか?ありがとう!

4

2 に答える 2

0

インデックス on(col1, col2, col3)は、次の目的で使用できます。

where col1 = 1 and col2 = 2 and col3 = 3
where col1 = 1 and col3 = 3
where col1 = 1

ただし、次の場合は対象外です。

where col2 = 2 and col3 = 3
where col3 = 3

の値を素早く検索するには、 Likeだけでなくcol2で始まるインデックスが必要です。col2.(col2)(col2, col3, col1)

col2そのため、 を検索したり、col3から独立して検索したい場合はcol1、3 つのインデックスがはるかに優れたオプションです。

于 2013-04-28T13:46:49.847 に答える
0

はい、それは重要です。

インデックスが大きいほど、まあ... 大きくなります。:-) ご存知のように、ディスク容量が増え、読み取り/更新が遅くなります。

実際、サイズが大きすぎると、より小さな代替インデックスでうまくいくと、プランナーによって無視されることがあります。

于 2013-04-28T13:42:50.563 に答える