首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Mysql 优化存储

Mysql 优化存储

作者头像
franket
发布2022-03-21 18:27:27
发布2022-03-21 18:27:27
7130
举报
文章被收录于专栏:技术杂记技术杂记

前言

Mysql长期使用会产生碎片,使用 optimize table 可以有效减少碎片

Reorganizes the physical storage of table data and associated index data, to reduce storage space and improve I/O efficiency when accessing the table. The exact changes made to each table depend on the storage engine used by that table. This statement does not work with views. This statement requires SELECT and INSERT privileges for the table.

大量的增删改操作过后,数据文件中会留下大量间隙块,出于性能的考虑,这些间隙是不会被立刻回收的,optimize table 在 InnoDB 的存储引擎里是被映射成了 ALTER TABLE … FORCE ,其实就是强制以原来的定义重建表,导入数据,更新索引和释放空闲空间,从而一定程度上也优化了读写性能

目前来说此操作只对 innodb 和myisam有效,下面分享一下它的基本操作,详细内容可以参考 官方文档

Note: 此操作会锁表,也会产生大量磁盘IO,并且持续时间非常长,生产环境慎用,一般可以用在slave上

我的场景也假定在slave上进行此操作


概要


检查一致性

操作之前进行一致性检查,以确保主备一致

Perconapercona-toolkit 中提供一个叫 pt-table-checksum 的工具,可以有效地进行一致性检查

代码语言:javascript
复制
[root@opti-master checkdb]# pt-table-checksum --nocheck-replication-filters --nocheck-binlog-format --replicate=ptcheck.checksum --databases youku_db,jd_db,elearning_db,bat_db   h=opti-master,u=ptcheck --ask-pass
Enter MySQL password: 

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 前言
  • 概要
    • 检查一致性
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档