(1)select * from tablename where name like '%a%';
(2)select * from tablename where name like '%a';
请问哪句的速度快?
如果在(2)中添加几个条件例如:select * from tablename where name like '%a' and name<>'b' and name<>'c';
这样的话又哪句的速度快了?

解决方案 »

  1.   

    (1)和(2)一样快(2)中加条件了后
    select * from tablename where name like '%a' and name <>'b' and name <>'c'; 
    这个要快
      

  2.   

    当然以上结论在特殊情况下不一定成立可以说的是,如果name上有索引,那么
    like '%a%';
    like '%a'; 
    都用不上快不快还是要看cost
      

  3.   

    1,2一样快.如果在(2)中添加几个条件例如:select * from tablename where name like '%a' and name <>'b' and name <>'c'; 这样的话2快.如果是(2)select * from tablename where name like 'a%';
    则2比1快. 
      

  4.   

    1开
    2慢
    我的理解!!
    你可以写个程序或在pl/sql里测试一下!
      

  5.   

    因为这个sql语句没有连接的表,查询的时候只有name这个字段为比较条件
    那么条件后面的比较速度可以说是一样的
    但结果集不一样,
    比如:没有加条件时符合条件的结果集是10000笔数据,但加了条件后符合条件的结果集只有10笔数据
    系统只显示10笔数据的速度肯定会比显示10000笔数据的速度快
      

  6.   


    select * from tablename where name like '%a%';我记得如果like后面的字符是二个%后的话,可以用上索引的啊,LZ可以分析试下,
      

  7.   

    个人感觉,加限制条件的会快一些。另外 <> 操作符号也不走索引,所以,如果数据量很大的话,速度应该差不多。
      

  8.   

    呵,我自己也证明了下,二个%号确实用不上索引,但如果是like'a%'可以用上索引,如果是like'%a'也是用不上索引的.
      

  9.   

    一样快 (2)中加条件了后 
    select * from tablename where name like '%a' and name <>'b' and name <>'c'; 
    这个要快
      

  10.   

    要看name字段上有没有索引了
    不过'%a%' 和'%a' 都不会用到索引,只有'a%'这样可以用到索引;
    所以要看当时数据库的环境,资源争用情况,1)和2)的运行情况;
    至于加了<>的条件之后,应该要快一点;