每月定期需要对数据进行大量的删除操作,想请教这样操作后对索引是否有影响,是否需要在删除操作完成后对索引进行更新之类的操作
如果需要的话这方面的内容搜索哪些关键字呢?
大家讲道理2017-04-17 16:14:39
使用OPTIMIZE
可以定期优化表每星期或者每个月一次,具体可以参考下面链接
http://dev.mysql.com/doc/refm...
摘自官网的描述
在这些情况下使用 OPTIMIZE TABLE,具体取决于表的类型:
对
InnoDB 表执行大量插入、更新或删除操作后,该表拥有自己的 .ibd 文件,因为它是在启用了
innodb_file_per_table 选项的情况下创建的。表和索引被
重新组织,并且磁盘空间可以被回收以供操作系统
系统使用。对 InnoDB 表中 FULLTEXT 索引一部分的
列执行大量插入、更新或删除操作后。首先设置
配置选项innodb_optimize_fulltext_only=1。为了将
索引维护周期保持在合理的时间,请设置
innodb_ft_num_word_optimize选项来指定要更新搜索索引中
的单词数量,并运行一系列OPTIMIZE TABLE语句
直到搜索完成索引已完全更新。删除 MyISAM 或 ARCHIVE 表的大部分内容后,
对具有可变长度行的 MyISAM 或 ARCHIVE 表进行许多更改
(具有 VARCHAR、VARBINARY、BLOB 或 TEXT 列的表) 。删除的
行保存在链接列表中,后续的 INSERT 操作
重用旧的行位置。您可以使用 OPTIMIZE TABLE 来回收
未使用的空间并对数据文件进行碎片整理。对表进行大量更改
后,此语句还可以提高使用该表的语句
的性能,有时甚至会显着提高。