当前位置: 首页 > news >正文

【请关注】MySQL 碎片整理提升性能

MySQL 碎片整理的具体操作样例:

1.备份数据:碎片整理可能伴随锁表或数据移动,操作前务必备份。

2.锁表影响:OPTIMIZE TABLE 对 InnoDB 表会触发 MDL 锁,大表需谨慎。

3.日志清理:整理后建议清理二进制日志(PURGE BINARY LOGS)或重启 MySQL,释放磁盘空间。

  • InnoDB 表空间碎片整理

假设存在一张名为 table_test 的表,因频繁增删导致碎片较多,需优化表空间。

  1.  使用 OPTIMIZE TABLE 整理(简单场景)

sql

OPTIMIZE TABLE table_test;

-作用:重组表数据,回收未使用空间,适用于中小型表。

-注意:会锁定表,生产环境建议在低峰期执行。

        ​​​​​​​2. 重建表+删除临时文件(避免锁表)

sql

-- 方法1:通过 CREATE...SELECT 重建(适用于非分区表)

CREATE TABLE table_test_new LIKE table_test;

INSERT INTO table_test_new SELECT  FROM table_test;

RENAME TABLE table_test TO table_test_old, table_test_new TO table_test;

DROP TABLE table_test_old;

-- 方法2:使用 ALTER TABLE 重建(自动处理临时表)

ALTER TABLE table_test ENGINE = InnoDB;

-作用:通过新建表转移数据,释放碎片空间,锁表时间更短。

​​​​​​​3.场景:MyISAM 表碎片整理

MyISAM 表碎片更常见,需定期优化。

1. 直接优化表

sql

OPTIMIZE TABLE table_test;

-效果:会立即整理碎片,恢复表空间。

2. 批量优化多个表

sql

-- 查询需要优化的表(数据长度 + 索引长度 > 数据文件长度)

SELECT TABLE_SCHEMA, TABLE_NAME

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE = 'MyISAM'

  AND (DATA_LENGTH + INDEX_LENGTH) > DATA_FREE;

-- 生成优化语句(批量执行)

SELECT CONCAT('OPTIMIZE TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ';')

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE = 'MyISAM'

  AND DATA_FREE > 0;

​​​​​​​通过以上方法可有效减少表空间碎片,提升查询性能。根据表引擎和数据量选择合适方式,优先避免对生产环境造成影响。

http://www.xdnf.cn/news/887743.html

相关文章:

  • 在Facebook平台有效结合TikTok跨境营销的方法
  • Calendar类日期设置进位问题
  • CSS3相关知识点
  • 《C++ 模板》
  • C# 中的 IRecipient
  • 网络安全全景解析
  • nvidia系列教程-agx-orin安装ros
  • DisplayPort 2.0协议介绍(1)
  • MCP协议在LLM系统中的架构与实现原理研究
  • 矩阵分解相关知识点总结(三)
  • 一日总结0605
  • 【Elasticsearch】Elasticsearch 核心技术(二):映射
  • es在Linux安装
  • 基于Docker Compose部署Java微服务项目
  • 项目根目录添加<meta>标签,记录当前部署版本、分支、时间
  • 分布式光纤传感(DAS)技术应用解析:从原理到落地场景
  • Python语法进阶篇 --- 类和对象
  • git连接本地仓库以及gitee
  • TypeScript进阶知识点
  • 14.AI搭建preparationのBERT预训练模型进行文本分类
  • 企业入驻成都芯谷金融中心·文化科技产业园优势深度解析
  • 浅谈 Linux 防火墙:从原理到实践
  • JSON Web Token (JWT) 详解:由来、原理与应用实践
  • FPGA 的硬件结构
  • Cursor 集成 Figma MCP 实现阅读理解原型图生成方案
  • 【Fifty Project - D33】
  • PlayWright | 初识微软出品的 WEB 应用自动化测试框架
  • 记一次 Windows XP 系统安装配置 Minio
  • vue对axios的封装和使用
  • 在 UE5 蓝图中配置Actor类型的Asset以作为位置和旋转设置目标