首页 > 试题广场 >

数据库中,什么操作命令可以整理表数据文件的碎片

[单选题]
数据库中,什么操作命令可以整理表数据文件的碎片
  • optimize table TabName;
  • repaire table TabName;
  • analyze table TabName;
  • flush table TabName;

1.表碎片的来源

当针对一个表的删除操作很多时,表会产生大量碎片。删除操作释放的空间不会被插入操作立即重用,甚至永远也不会被重用。
2.表碎片导致的问题
  • 查询响应时间(尤其是全表扫描)变慢
  • 产生大量行迁移
  • 浪费空间
整理表碎片对基于索引的查询不会有太大性能提升。
3.清除方法
mysql的清除方法:
    - -OPTIMIZE TABLE,OPTIMIZE TABLE可以一次性对多个表进行碎片整理,只需要在OPTIMIZE TABLE后面接多个表名,并以英文逗号隔开即可。
    - -OPTIMIZE TABLE只对MyISAM,BDB和InnoDB表起作用,尤其是MyISAM表的作用最为明显。此外,并不是所有表都需要进行碎片整理,一般只需要对包含上述可变长度的文本数据类型的表进行整理即可。
   -  -在OPTIMIZE TABLE运行过程中,MySQL会锁定表。
Oracle的清除方法:
        10g:之前两种方法:1.导出表,删除表,再导入表 2.alter table move     注:一般选择第二种,需要重建索引。
        10g后: 10g 开始,提供一个 shrink 命令,需要表空间是基于自动段管理的。
发表于 2019-08-29 19:20:17 回复(0)