这两个查询有区别吗(优化方面)?
select * from users;
和
select * from users where first_name like '%%' and last_name like '%%'
我正在使用传递的参数在 PHP 中动态构建查询。所以,例如..
$first_name_str = "";
if($firstname)
{
$first_name_str = "first_name = '%".$firstname."%' and";
}
$last_name_str = "";
if($lastname)
{
$last_name_str = "last_name = '%".$lastname."%' and";
}
$query =
"select
*
from
users
where
".$first_name_str."
".$last_name_str."
1=1";
我问这个的原因是因为我读到mysql在进行选择时只使用一个索引。因此,如果我对名字和姓氏有单独的索引,则只会使用一个。如果我的查询为:
select * from users where first_name like '%%' and last_name like '%%'
默认情况下,我可以在 first_name 和 last_name 上添加连接索引,搜索会更快吗?