
[code]

    CREATE TABLE `users` (
      `id` CHAR(36) NOT NULL,
      `tenant_id` CHAR(36) NOT NULL,
      `email_address` VARCHAR(254) NOT NULL,
      PRIMARY KEY (`id`),
      INDEX `email_idx` (`email_address` ASC))
    
[/code]

上記テーブルの場合に、以下の検索をかけた場合インデックスは聴きますか効きますか？

[code]

    SELECT * FROM users WHERE email_address = ? AND tenant_id = ?
    
[/code]

インデックスとは完全一致していないですが、`email_address`を一つ目に指定することで、`email_idx`のインデックスが効いて、その結果の中から、`tenant_id`が一致するものを取ってくるという認識が正しいかを確認したいです。


CC BY-SA 4.0
2018-11-02T14:27:29.130
49905
2018-12-05T07:13:20.463
2018-11-03T06:22:56.037
3068
30817
question
mysql database
MySQLのマルチカラムインデックスの部分一致が効くかどうか


効きます。  
試しにEXPLAINをつけてSELECT文を実行していみると、実際にemail_idxが使用されているのが分かると思います。

MySQL 5.6 - マルチカラムインデックス  
<https://dev.mysql.com/doc/refman/5.6/ja/multiple-column-indexes.html>


CC BY-SA 4.0
2018-12-05T07:13:20.463
50921
2018-12-05T07:13:20.463
9608
49905
answer