我在MySQL中找到了关于索引的interesting SitePoint article
上面的文章讨论了“AND”语句,其中“SELECT”如
SELECT peopleid
FROM people
WHERE firstname='Mike'
AND lastname='Sullivan'
AND age=17
可以利用像
这样的多列索引ALTER TABLE people
ADD INDEX fname_lname_age (firstname,lastname,age);
但是在我的Web应用程序中,我经常有一个文本字段输入,用户可以在其中键入firstname或lastname的部分,从而产生如下查询:
SELECT peopleid
FROM people
WHERE ((firstname LIKE '%$parameter%')
OR (lastname LIKE '%$parameter%'))
AND age=17
那么,在这样的情况下,多列索引是否也能提高性能?
提前致谢
答案 0 :(得分:2)
官方MySQL manual中有一章特别针对此。
但你真正应该了解的是EXPLAIN
。将它放在您的查询前面,如下所示:
EXPLAIN SELECT peopleid
FROM people
WHERE ((firstname LIKE '%$parameter%')
OR (lastname LIKE '%$parameter%'))
AND age=17
您可以查看是否使用了索引。