我有个历史数据数据库,大约500万数据。访问速度太慢了,我用条件delete300万数据后,数据访问没有太大变化。我是不是应该 alter table 表名 move 一下,我是新手,不知道该怎么处理一下,提高访问速度。
以前的全部删除时候,我用alter table 表名 move 一下就可以提高访问速度。现在没有完全删除数据,不知道能不能用这个语句。

解决方案 »

  1.   

    对你那张历史表创建个索引试试,适当的建立索引会提高查询速度。简单的索引
    在表上创建一个简单的索引。当我们省略关键词 UNIQUE 时,就可以使用重复的值。
    CREATE INDEX 索引名称
    ON 表名称 (列名称)
      

  2.   

    感觉move不能消除表的碎片
    做以下的操作试试
    CREATE TABLE 表名_back AS SELECT * FROM 表名;
    TRUNCATE TABLE 表名;
    INSERT INTO 表名 SELECT * FROM 表名_back;
    DROP TABLE 表名_back;
      

  3.   

    alter table 表名 move 
    会使索引失效,所以要慎重,执行后要重建索引。最好进行分区。
      

  4.   

    用alter释放空间后就好了。谢谢各位了。不过这个分区的问题还得请教一下。