语句1: select * from tb where name like '___' 语句2: select * from tb where len(name)=3 哪条效率高,为什么? 

解决方案 »

  1.   

    语句2: select * from tb where len(name)=3 高.
      

  2.   

    其实数据库中做了下测试,不知哪位能在MS SQL SERVER上测试一下。mysql> select BENCHMARK(10000000,'aaa' like '___') ;
    1 row in set (0.34 sec)mysql> select BENCHMARK(10000000,length('aaa')=3) ;
    1 row in set (0.27 sec)
      

  3.   

    mysql> select BENCHMARK(10000000,'abcdefghijklmnabcdefghijklmnabcdefghijklmnabcdefghijklmn' like '___') ;
    1 row in set (0.36 sec)mysql> select BENCHMARK(10000000,length('abcdefghijklmnabcdefghijklmnabcdefghijklmnabcdefghijklmn')=3) ;
    1 row in set (0.28 sec)
      

  4.   

    经过我测试,还是len()=3比较快。
    为什么?