私はインデックスに残され、ほとんどの列事項はMySQLのインデックス作成で最も左の列は重要ですか?
私の表は、以下のフィールド
id (int Primary key)
first_name(varchar(50))
last_name varchar(50)
が含まれていることを知っておく必要があり、私のインデックスがある
Create index ix_name_1 on name(last_name,first_name)
クエリ
私は次のクエリを実行すると、適切なインデックス
Select *
from name
where first_name = 'firstName' and last_name ='lastName'
または
select *
from name
where last_name = 'lastName' and first_name = 'firstName'
しかし、私は
Select * from name where first_name = 'firstName'
それはテーブルスキャンに行くを実行しています。
私が見つけたことは、last_nameが最も左の列で、同じテーブルで同じ行こうとしました。
だから私ははい、問題、これを参照んインデックスで最も列を左インデックス
スタート-column-indexes.html。 –
...正確な見積もりは:「列のインデックスの一番左の接頭辞を形成しない場合、MySQLはインデックスを使用してルックアップを実行できません。 – raina77ow
自分でインデックスを作成してみてください。 'last_name、first_name'の順番に全員の名前がリストされている大きな本を作ってください。次に、すべての人物を 'last_name'" smith "で検索してみましょう。すべてが同じページに連続して表示されるので簡単です。今度は 'first_name'" john "で誰も検索してみてください。この本は貴重なものではありません。書籍の始めに" adams、john "終わりには "zorn、john"、それ以外の任意の数の "john"があります。 –