SQL语句没有什么问题呀,select * from table1 where date between(d1 and d2).
我觉得可能是数据库设置的问题,但是不知道要改什么地方,怎么改?

解决方案 »

  1.   

    where date between(d1 and d2) 这个太慢了,要优化。
    改成date >= to_date(d1,'yyyy-mm-dd') and date <= to_date(d2,'yyyy-mm-dd')这是最快的了。
      

  2.   

    whqcfp(one_dollar) 你说的我试过了,还是不行.
      

  3.   

    在海量数据存储当中一个表可能有几百万行数据,对于这样庞大的表进行一些操作需要花很多时间,所以可以运用表分区把表分成若干个部分,再对每一小部份进行操作就可以解决了,可是分区只能在创建表时操作。所以你可以把你的备份一个新表,在新表上创建分区
    --可以采用范围分区
    create table 表
    as
    select * from 旧表
    PARTITION BY RANGE(列n)
    (
    PARTITION 分区名1 VALUES LESS THAN (列n的分区标准1),
    PARTITION 分区名2 VALUES LESS THAN (列n的分区标准2)
    PARTITION 分区名3 VALUES LESS THAN (MAXVALUE)
    ); 
    --查看分区中的数据
    select * from 表 partition(分区名);
    只有这样才能提高速度