我有 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
好的。我查询
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 Query
"SELECT name FROM table WHERE lang_index='en' AND enam LIKE 'myname%'"
速度太棒了。大约 0.02 秒。
然后我将我的第二个查询分解为两个查询(1 和 3 查询),它的速度更快。大约 0.04 秒,但不简单。
为什么我的查询很慢?两个查询比一个快得多。我需要这样做我"SELECT name FROM table WHERE lang_index='en' AND (name LIKE 'myname%' OR enam LIKE 'myname%')"
怎样才能让它更快?