私は非常に大きなテーブルを持っており、キーワードを持っているURLを検索する必要があります。LIKE
でこれをやろうとしていますが、LIKE
はこのように動作しています。文字列はfoo
で始まり、取得しようとするものは'%foo%'
です。速い検索クエリ
$query = mysqli_query($link,"SELECT * FROM table WHERE url LIKE 'foo%' LIMIT number");
あなたが私にアイデアを与えることができれば完璧です。ありがとう!
また、私はurlとidのインデックスを持っています。
'like '%...%''は決して高速ではありません。 DBはそのようなクエリのインデックスを使用することはできませんので、毎回完全なテーブルスキャンを実行する必要があります。クエリが間違っているのは何ですか? '%foo%'は、そのフィールドのどこでも 'foo'を見つけるために使用しなければならないものです。 'foo%'はfooがフィールドの値の最初の3文字であればそれを見つけます。 –
私はこの質問をした理由を知っています。私はあなたのテーブルを検索してURL内のキーワードを見つけることができません。 –
あなたはあなたのように 'like'を使うか、fulltext検索では、このケースでは大いに役立つだろうとは思っていません。 –