select ItemNo,Item_C_Name,Item_E_Name from bPproducts where ItemNo like '%aa%' or Item_C_Name like '%aa%' or Item_C_Spec like '%aa%' order by CreateDate desc问下大侠们像这样的LIKE 查询 同时又加 ORDER BY  这样的怎么 建立索引,让他速度快一点

解决方案 »

  1.   


    like '%%'  会让索引无效。
    你可以建全文索引,用contains 替代 like
      

  2.   

    1、   全文索引  
    2、有几个字段来模糊查询,建议程序上采用盘古分词+lucene
      

  3.   

    ItemNo应该是主键吧
    其他的字段Item_C_Name、Item_C_Spec、CreateDate建立非聚簇索引
      

  4.   

    是的,ItmeNo是主键
      

  5.   

    1.where子句中用or,
    2.like '%aa%'
    都不利于索引使用.
      

  6.   

    Exec sp_fulltext_Database 'enable'开启全文索引
    使用全文索引吧,like会将索引失效
      

  7.   

    菜鸟只知道like '%%'会导致索引无效的哈= =
      

  8.   

    like 'aaaa%' 这种可以走索引,'%aa'这个不行~~~貌似是这样理解
      

  9.   

    左边带%的like,比较常用的解决方案是全文索引。。不过,如果数据量大的话,填充全文索引会比较耗费资源。
    楼主可以搜一下全文索引相关的文章看看。