mysql索引 - MySQL:索引是否需要整理维护?
高洛峰
高洛峰 2017-04-17 16:12:39
0
1
673

每月定期需要对数据进行大量的删除操作,想请教这样操作后对索引是否有影响,是否需要在删除操作完成后对索引进行更新之类的操作

如果需要的话这方面的内容搜索哪些关键字呢?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
大家讲道理

使用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 来回收
未使用的空间并对数据文件进行碎片整理。对表进行大量更改
后,此语句还可以提高使用该表的语句
的性能,有时甚至会显着提高。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板