我现在有一个表里面有30多万条的记录,用一个字段作为主键并且以它建立了一个索引,但现在读取它一条记录变得很慢,平均要2秒才能读取一条记录,怎样才能优化这个表呢,也就是能否看到这个表产生的碎片是不是很多,现在不想把这个表删除再重新建这个表,用其它的方法怎么优化它?

解决方案 »

  1.   

    可以做表分区。
    http://www.chinaunix.net/bbsjh/8/178.html
      

  2.   

    30万条记录应该只要优化你的索引就行了,你把你建立索引的语句列出来如主键是  ID,主键会产生一个唯一索引select * from id =100;
      

  3.   

    30w是很小儿科的数据量,就连Access这样的小数据库都能轻松应付。肯定不用建分区。
    我估计你应该是在查询里面用了like 语句或其他什么其他的引起全表扫描的冬冬了,最好就是改良你的SQL,再见好你的索引!******注意:::看下你的执行计划,看你的索引用上没有!  如果真的无法避免权标索引那就慢点吧。
      

  4.   

    create table table_backup
    as
    select * from your_table;drop table your_table;create table your_table(
           ........,
    primary key (pk_column));create index .....;insert into your_talbe
    select * from table_backup;commit;drop table table_backup;30萬的記錄不多,我的表有400萬記錄,由於中間增加過欄位,修改過索引等等
    速度越來越慢,最近我就備份數據後重新建表,主鍵合索引,速度就恢復的開始很快的時候