私は80万のレコードを持つテーブルを持っています。テーブルの構造:検索用にLIKEを使用する大きなMySQLテーブルの分割
- ID - オートインクリメント、
- コード - 5〜100文字の英数字コード、
- 他のフィールド。
最も使用されるクエリは
SELECT * FROM table
WHERE code LIKE '%{user-defined-value}%'
あるクエリの数が増えているだけでなく、recodrsがカウントされます。まもなくパフォーマンスの問題が発生します。
部品を分割する方法はありますか?テーブルを最適化するための他の方法がありますか?
実際には、 "%"の先頭の問題を解決するためにもう1つの列 "code_inverted"を追加しました。 私はあなたが示唆したようにコード長でテーブルを分割しようとします。 – Leksat
ニース。 code_invertedは、後に続く%がない場合にのみ先頭の%で問題を解決することに注意してください(新しい先頭の%になります)。 :) – Ami