Mysql =和LIKE之间的性能差异
我发现Mysql =和LIKE之间的性能差异,mysql,Mysql,我发现LIKE比=操作符需要更多的执行时间 select * from `texts` where `letter` like 'a'; 上述带有LIKE参数的查询执行时间为3微秒 select * from `texts` where `letter`='a'; 上述带有=参数的查询执行时间为1微秒 select * from `texts` where `letter`='a'; 他们之间有什么区别吗 检查首先:LIKE不区分大小写-这当然需要每行花费一些处理时间。除此之外,设置查询(
LIKE
比=
操作符需要更多的执行时间
select * from `texts` where `letter` like 'a';
上述带有LIKE
参数的查询执行时间为3微秒
select * from `texts` where `letter`='a';
上述带有=
参数的查询执行时间为1微秒
select * from `texts` where `letter`='a';
他们之间有什么区别吗
检查首先:
LIKE
不区分大小写-这当然需要每行花费一些处理时间。除此之外,设置查询(例如,将参数解析为通配符的类似)还需要花费一些时间
最重要的部分:像
在大多数情况下都无法使用索引,因此要准备在具有高选择性查询的较大表上执行更多的执行时间(按数量级)
编辑
正如@Ravinder所指出的,在默认排序规则中,=
运算符不区分大小写。微秒级的差异可能只是噪声。试着用相当多的数据运行它。我只给出示例数据,如果表包含数百万条记录,那么它可能会影响性能。@Sadikhasan。我没有投反对票,但是1微秒和3微秒之间的差别是噪音。你应该在数百万行上运行测试来检查性能特征。你所说的LIKE是不区分大小写的
也不区分大小写。我请求diagree:尝试选择'A'='A','A'LIKE'A'
除非使用binary
,否则无论是equals
还是like
@Ravinder,它都是不区分大小写的。。。啊,我的服务器上总是有collationserver=utf8\u bin
,所以这当然是不同的。我将编辑答案来提及这一点。