page contents

MySQL中CHECK、OPTIMIZE和ANALYZE的作用分别是什么?

轩辕小不懂 发布于 2022-03-22 14:20
阅读 532
收藏 0
分类:数据库
3346
Nen
Nen
- 程序员

MySQL中分析表(ANALYZE)的主要作用是分析关键字的分布;检查表(CHECK)的主要作用是检查表是否存在错误;优化表(OPTIMIZE)的主要作用是消除删除或者更新造成的空间浪费。详细信息见下表:

attachments-2022-03-rjeurVNh62396fc3d6fe2.png需要注意以下几点:

1)对于InnoDB引擎的表来说,通过设置innodb_file_per_table参数,设置InnoDB为独立表空间模式,这样每个数据库的每个表都会生成一个独立的ibd文件,用于存储表的数据和索引,这样可以在一定程度上减轻InnoDB表的空间回收压力。另外,在删除大量数据后,InnoDB表可以通过alter table但是不修改引擎的方法来回收不用的空间,该操作会重建表:

attachments-2022-03-S5n9LmkK623970964d3d4.png

2)ANALYZE、CHECK、OPTIMIZE、ALTER TABLE执行期间会对表进行锁定(数据库系统会对表加一个只读锁,在分析期间,只能读取表中的记录,不能更新和插入记录),因此一定要注意在数据库不繁忙的时候执行相关的操作。

3)工具mysqlcheck可以检查和修复MyISAM表,还可以优化和分析表,它集成了MySQL工具中CHECK、REPAIR、ANALYZE和OPTIMIZE的功能。

请先 登录 后评论