これは、過去数日間、私の頭の痛みでした。以前、のパフォーマンスに関する知識がなくてもデータベースを作成しましたLIKE
。私が使用したクエリは次のようなものです。
SELECT ....
FROM .... JOINS ....
WHERE tableA.col1 LIKE '%keyword%' OR
tableB.col2 LIKE '%keyword%' OR
tableC.col2 LIKE '%keyword%' OR
.....
クエリをテストしたところ、100〜150のレコードしかなかったため、非常に高速でした。キーワードを含む文字列を検索したかったのです。数か月が経過すると、データベースは50,000レコードを含む巨大なものになりました。そして今回、私はすでにクエリのパフォーマンスの低下を経験しています。非常に低かった。
どうすればそれを改善できますか?すでに企業で使用されているため、データベースを変更することはできません。
ちなみに、私のテーブルはすべてINNODB
でした。