我在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/

10-13 07:34