私は辞書を作っていて、2つのテーブルがあります
word (word, description, ext)
translate (id, word_translate, description_tranlate, org_word, language_id)
すべての単語が翻訳されているわけではありません。「word」と「word_translated」のみを検索したいです。検索結果には常に単語 + 翻訳済み (存在する場合) が表示されます。私の検索クエリは次のようになります。
SELECT * FROM word
LEFT JOIN translate ON (word=org_word AND language_id=?)
WHERE (word LIKE "%something%" OR translated_word LIKE "%something%")
クエリ時間: 9.3350 秒
しかし、私が1つしか使用しない場合は、例のように。「%something%」のような単語
SELECT * FROM word
LEFT JOIN translate ON (word=org_word AND language_id=?)
WHERE (word LIKE "%somethin%")
クエリ時間: 0.0451 秒
*word_traslate LIKE* "%somethin%" のみ
SELECT * FROM word
LEFT JOIN translate ON (word=org_word AND language_id=?)
WHERE (translated_word LIKE "%somethin%")
クエリ時間: 0.0037 秒
2 つの LIKE を使用すると、クエリに時間がかかるのはなぜですか。このクエリを実行するためのより良い方法はありますか。私は何か間違ったことをしていますか?