100 000 000 行の非常に大きなテーブルがあります。テーブルの構造
id int INDEX(not primary not unique just index)
lang_index varchar(5) INDEX
name varchar(255) INDEX
enam varchar(255) INDEX
Ok。私はクエリを行います
1 クエリ
"SELECT name FROM table WHERE lang_index='en' AND name LIKE 'myname%'"
この大きなテーブルの速度は問題ありません。約0.02秒
私は2つのクエリを試します
"SELECT name FROM table WHERE lang_index='en' AND (name LIKE 'myname%' OR enam LIKE 'myname%')"
230秒前後で非常に遅い!!!
次に、この3つのクエリを試します
"SELECT name FROM table WHERE lang_index='en' AND enam LIKE 'myname%'"
スピードは素晴らしいです。約0.02秒
次に、2 つのクエリ (1 および 3 クエリ) の 2 番目のクエリをより高速に爆発させます。約0.04秒ですが、単純ではありません。
クエリが遅いのはなぜですか? 2 つのクエリは、1 つよりもはるかに高速です。これを行う必要があります。"SELECT name FROM table WHERE lang_index='en' AND (name LIKE 'myname%' OR enam LIKE 'myname%')"
どうすれば高速化できますか?