SQL:select * from table where column1 like '%AAA'
因为这张表数据量很大,所以效率很低,现在在不改变SQL逻辑的情况下有什么好的解决方案,COLUMN1字段值是没有规律的。

解决方案 »

  1.   

    1、為column1創建索引2、select * from table where substr(column1,-3,3) = 'AAA'
      

  2.   

    skyinfo(tiger) ( ) 信誉:100  2007-08-02 17:24:02  得分: 0  
     
     
       1、為column1創建索引2、select * from table where substr(column1,-3,3) = 'AAA'
      
     
    顶LS, 建议 SELECT * 改成 COL1, COL2,...要好一些
      

  3.   

    为COLUMN1创建索引,而LIKE不会使用索引。
    所以最好为substr(column1,-3,3)创建函数索引
      

  4.   

    不好意思,可能我意思没说清楚,AAA是个动态变化的。位数没法定,我知道左模糊不能用该字段索引,所以问下有没有其他解决方案
      

  5.   

    需要你自己去研究ORACLE TEXT相关,那是关于模糊查询的。
    效率感觉还可以。
      

  6.   

    增加了一个字段column2,就是原字段的到过来的,然后写
    select * from table where column2 like 'AAA%',
    当然你也必须把参数也倒一下。