每月定期需要对数据进行大量的删除操作,想请教这样操作后对索引是否有影响,是否需要在删除操作完成后对索引进行更新之类的操作
如果需要的话这方面的内容搜索哪些关键字呢?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
使用OPTIMIZE可以定期优化表每星期或者每个月一次,具体可以参考下面链接http://dev.mysql.com/doc/refm...
OPTIMIZE
摘自官网的描述
在这些情况下使用 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 来回收未使用的空间并对数据文件进行碎片整理。对表进行大量更改后,此语句还可以提高使用该表的语句的性能,有时甚至会显着提高。
在这些情况下使用 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 来回收未使用的空间并对数据文件进行碎片整理。对表进行大量更改后,此语句还可以提高使用该表的语句的性能,有时甚至会显着提高。
使用
OPTIMIZE
可以定期优化表每星期或者每个月一次,具体可以参考下面链接http://dev.mysql.com/doc/refm...
摘自官网的描述