mysql大表空间整理注意点

1.需求

订单表 j_trade_order有6000多万数据,需要迁移3000多万到另外一张表,迁移结束后需要整理表空间

2.OPTIMIZE

整理j_trade_order表空间(InnoDB/MyISAM引擎均支持)

复制代码
OPTIMIZE TABLE j_trade_order;

●注意事项:

  1. 执行期间会对表加 排他锁(阻塞所有读写操作),对于 114.79GB 的大表,锁表时间极长,不建议在生产业务高峰期执行;

  2. 执行后会生成临时表,需要预留至少 2 倍于表大小的磁盘空间(即至少 230GB 空闲磁盘),否则会执行失败。

3.ALTER TABLE

整理j_trade_order表空间,重建表结构和索引,释放碎片空间

ALTER TABLE j_trade_order ENGINE = InnoDB;

● 执行后,表的存储引擎不变(仍为 InnoDB),但表空间会被重新规整,查询性能和磁盘利用率都会提升;

● 对于 114.79GB 的大表,执行时间较长(视服务器 IO 性能而定),建议在业务低峰期执行。

4.验证表数据完整性

对比整理前后的表数据量,确认无丢失

SELECT COUNT() as count FROM j_trade_order;

5.小结

  1. 生产环境首选 ALTER TABLE j_trade_order ENGINE = InnoDB;(在线操作,影响小,效果好);
  2. 备选 OPTIMIZE TABLE j_trade_order;(兼容 MyISAM,但锁表时间长,需预留足够磁盘空间);
  3. 大表操作前必须备份数据、检查磁盘空间,执行后验证碎片率和数据完整性;
  4. 建议在业务低峰期执行,避免影响线上服务
相关推荐
那个村的李富贵8 小时前
解锁CANN仓库核心能力:50行代码搭建国产化AIGC图片风格迁移神器
mysql·信息可视化·aigc·cann
小Tomkk8 小时前
数据库 变更和版本控制管理工具 --Bytebase 安装部署(linux 安装篇)
linux·运维·数据库·ci/cd·bytebase
qq_12498707538 小时前
基于JavaWeb的大学生房屋租赁系统(源码+论文+部署+安装)
java·数据库·人工智能·spring boot·计算机视觉·毕业设计·计算机毕业设计
倒流时光三十年9 小时前
SpringBoot 数据库同步 Elasticsearch 性能优化
数据库·spring boot·elasticsearch
码农小卡拉9 小时前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot
怣509 小时前
MySQL多表连接:全外连接、交叉连接与结果集合并详解
数据库·sql
wjhx9 小时前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt
冰暮流星9 小时前
javascript之二重循环练习
开发语言·javascript·数据库
万岳科技系统开发10 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
冉冰学姐10 小时前
SSM智慧社区管理系统jby69(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·管理系统·智慧社区·ssm 框架