我在MySQL数据库中有一个表:
CodeNo Block
a1 a
a2 a
b1 b
b2 b
c1 c
c2 c
我可以使用以下两种方法之一进行查询:
select codeno from mytab where block='b' and codeno like 'b%'
或者
select codeno from mytab where codeno like 'b%'
当mytab中有数百万条记录时,在实际情况下哪一个更快?还有谁能解释它实际存储在数据库中的方式?
最佳答案
在没有看到执行计划的情况下,我猜第一个过滤器会减少设置第二个过滤器的记录数量,这会使第一个选项更快,特别是like运算符是一个字符串比较器,实际上并没有那么有效作为数字或二进制比较。
要了解更多信息,您可以生成两个语句的执行计划并比较运行时间,请查看documentation
关于mysql - mysql以更快的方式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19115131/