查看mysql表的碎片率,及优化方法

该篇博客探讨了如何检查MySQL表的碎片率,通过SQL查询获取表的大小、空闲空间等信息。对于MyISAM引擎的表,可以使用`OPTIMIZE TABLE`命令进行优化。而对于InnoDB引擎,优化表需要满足特定条件,官方文档提供了详细说明。此外,还介绍了查看索引使用情况的查询语句,帮助优化数据库性能。
摘要由CSDN通过智能技术生成

查看mysql表的碎片率:

SELECT TABLE_SCHEMA
      ,TABLE_NAME 
      ,ENGINE
      ,ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) AS SIZE_MB
      ,ROUND(DATA_FREE/1024/1024,2) AS FREE_SIZ_MB
FROM information_schema.TABLES 
WHERE DATA_FREE >=5*1024*1024
ORDER BY FREE_SIZ_MB DESC;

Myisam引擎使用下面语句优化表:

optimize table XXX

https://editor.csdn.net/md/?articleId=120748477

关于innodb的表优化,看了官方文档,要想optimize语句生效,有一些前提条件.

https://dev.mysql.com/doc/refman/8.0/en/optimize-table.html

在这里插入图片描述

https://dev.mysql.com/doc/refman/8.0/en/alter-table.html

在这里插入图片描述

查看索引使用情况:

SELECT object_type, object_schema, object_name, index_name, count_star, count_read, COUNT_FETCH FROM PERFORMANCE_SCHEMA.table_io_waits_summary_by_index_usage WHERE object_schema = "xxx" AND object_name = "xxx"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SHUIPING_YANG

你的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值