2017-10-27 4 views
0

全文と、通常のインデックス正しい通常のインデックスは、「=」を使用してクエリに使用され、「のような」と私は「試合を()」を行うとき、フルテキストにのみ使用されるのですか?MySQLの:私の理解である場合は、フルテキストインデックスとMySQL</p> <p>内のテーブルの同じ列(varchar型)の「正常な」インデックスの両方を持つことがOKであれば、私が知りたいのですが

ありがとうございました!

答えて

2

はい、同じ列に複数のインデックスを持つことが許され、それが役に立たないほとんどの時間である一方で、それはあなたのケースで完璧な意味があります。

MATCH...AGAINST構文を使用してクエリを実行する場合、MySQLは実際にFULLTEXTインデックスを使用し、それ以外のインデックスは通常のインデックスを使用します。

+0

あなたの答えをありがとうございました、彼らはこの動作を言及MySQLのドキュメント内の場所はありますか? –

+2

ない本当にしかし、そのわずか論理的前提:あなたは、同じ列に複数のインデックスを持っている場合は、それが使用する権利いずれかを選択し、MySQLのオプティマイザです。それは右のいずれかを使用するdoesntの場合は、[HINTS](https://dev.mysql.com/doc/refman/5.6/en/index-hints.html)としたいインデックスを強制することができます。しかし、 'FULLTEXT'インデックスの場合、' MATCH ... AGAINST'構文で明示的にコードを記述する必要があります。これは、オプティマイザに対応する 'FULLTEXT'インデックスを使用するように指示するためです。あなたのケースでは、それはあなたがしたいことを正確に行うだけです。 –

+0

私たちのDBAはあなたが言ったことをちょうど確認しました:) –

関連する問題