碎片产生的原因

(1)表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为空白、被留空,而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大;

(2)当执行插入操作时,MySQL会尝试使用空白空间,但如果某个空白空间一直没有被大小合适的数据占用,仍然无法将其彻底占用,就形成了碎片;

(3)当MySQL对数据进行扫描时,它扫描的对象实际是列表的容量需求上限,也就是数据被写入的区域中处于峰值位置的部分;

例如:

一个表有1万行,每行10字节,会占用10万字节存储空间,执行删除操作,只留一行,实际内容只剩下10字节,但MySQL在读取时,仍看做是10万字节的表进行处理,所以,碎片越多,就会越来越影响查询性能。

查看表碎片大小

(1)查看某个表的碎片大小

mysql> SHOW TABLE STATUS LIKE '表名';

结果中'Data_free'列的值就是碎片大小

(2)列出所有已经产生碎片的表

mysql> select table_schema db, table_name, data_free, engine from information_schema.tables where table_schema not in ('information_schema', 'mysql') and data_free > 0;

清除表碎片

(1)MyISAM表

mysql> optimize table 表名

(2)InnoDB表

mysql> alter table 表名 engine=InnoDB

建议

清除碎片操作会暂时锁表,数据量越大,耗费的时间越长,可以做个脚本,定定期检查mysql中 information_schema.TABLES字段,查看 DATA_FREE 字段,大于0话,就表示有碎片,例如每周三凌晨,检查DATA_FREE字段,大于自己认为的警戒值的话,就清理一次。

mysql 表空间碎片_MySQL碎片产生的原因及清除表空间碎片的方法相关推荐

  1. mysql 备份表和数据_Mysql数据库备份(一)------数据库备份和表备份

    一.Mysql中的数据备份: Mysql中数据备份使用的命令是:mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中.mysqldump命令的 工作原 ...

  2. mysql关联表分页查询_MySQL一对多分页查询-主表关联表条件查询问题

    文章目录 1 摘要 2 情景复现 2.1 数据模型 2.2 核心代码 2.3 测试数据 2.4 拓展一点 1 摘要 分页查询是后台项目中最常见的一种操作,在一对多(one to many)的关系表中, ...

  3. mysql多字段分库分表基因码_mysql数据库优化方案之分库分表,轻松解决亿级数据问题...

    今天介绍下sharding-sphere,主要介绍他的特性,分库分表的技术的详解. (一)下载源码官网地址获取源码https://shardingsphere.apache.org/index_zh. ...

  4. MySQL8单表记录多少_mysql学习笔记之8(单表数据记录查询)_mysql

    mysql学习笔记之八(单表数据记录查询) 查询数据记录,就是指从数据库对象中获取所要求的数据记录.mysql中提供了各种不同方式的数据查询方法. 一.简单数据记录查询 select field1,f ...

  5. mysql cte的好处_Mysql 8 重要新特性 - CTE 通用表表达式

    前言 Mysql 8 正式发布了,新增了很多优秀特性,之后我会挑些重点来分享. 下面和大家一起熟悉下CTE(Common Table Expressions)通用表表达式. CTE 是什么 派生表大家 ...

  6. mysql中数据表如何关联_mysql 如何导入/导出2个关联表中的数据

    mysql 怎么导入/导出2个关联表中的数据 表一 id student 1 S1 2 S2 表二 id sid scord order 1 1 100 1 2 1 60 2 3 1 80 3 4 2 ...

  7. mysql怎么使用sql语句查看表的编码_MySQL中使用SQL语句查看某个表的编码

    MySQL中,如何使用SQL语句来查看某个表的编码呢?我们使用show create table 这一SQL语句来解决这个问题. show create table可以查看创建这个表的SQL语句脚本, ...

  8. mysql 锁24小时_MySQL中Alter table 不长时间锁表的情况汇总。

    查看原文:http://www.tanbo.name/html/99669.html 前言: MySQL 的大表运维总是令人头疼的一件事,特别是大表表结构的修改尤为困难. 首先,alter table ...

  9. mysql 计算非重复_MySQL Query:在一个非常庞大的表中计算重复值

    我有这个MySQL表: CREATE TABLE `triple` ( `id_one` int(11) NOT NULL,`id_two` int(11) NOT NULL,`id_three` i ...

  10. mysql查询学生表年龄语句_mysql中一张(居民)表按年龄段查询数据

    知识点: 用mysql,按年龄段查询一张居民的数据(各年龄段居民的个数) 1.如:查询resident(居民表),按照各年龄段,统计人数 2.mysql语句如下: select ageproporti ...

最新文章

  1. jpa中使用Query判断条件查询
  2. EasyUI入门教程整理与示例代码下载
  3. signature=35e01da53254eb12b5fc3c020f572e6a,Signature Analyzer Use NXP MCU
  4. 广东--阳江--闸波一天游归来,上PP~~
  5. 两波形相位差的计算值_如何将您的计算机用作任意波形发生器
  6. 重写GridView支持数据筛选和自动排序功能
  7. 读《python核心编程2》笔记 1
  8. php 证书 paypal,php – Paypal访问 – SSL证书:无法获取本地颁发者证书
  9. 苹果将投资10亿美元扩容位于美国雷诺的数据中心
  10. 计算机专业黑板报迎新,开学迎新黑板报_迎新学期黑板报高三
  11. SpringCloud OpenFeign(二)
  12. Office And PDF 病毒分析工具
  13. PDF文件转MOBI怎么转?在线操作轻松完成
  14. Tbschedule参数配置理解
  15. Gradle的神奇之处
  16. Guava-Joiner工具类
  17. JAVA给微信公众号二维码添加LOGO时总是生成灰度图片的原因及解决办法
  18. 在win10+VS2019上编译支持Vulkan SDK的ncnn
  19. IBM X 3650 M3服务器RAID0设置
  20. Java中「与运算,或运算,异或运算,取反运算。」

热门文章

  1. 黑苹果常用 工具+Kext+ACPI+UEFI驱动 下载
  2. 车载高德地图显示服务器信息,车载高德一直gps定位中,怎么解决高德地图导航gps信号弱...
  3. Mac电脑无法从Photoshop 2020作为插件访问DeNoise AI的解决办法
  4. 腾讯下载的qlv格式视频转换mp4格式方法
  5. OPPO消息推送服务器,OPPO开放平台消息推送申请教程
  6. NR接入过程中鉴权失败问题
  7. Python学习笔记-2017.5.4thon学习笔记-2017.5.22
  8. python查找excel中重复数据_python中查找excel某一列的重复数据剔除之后打印
  9. Java实现 LeetCode 273 整数转换英文表示
  10. typedef定义结构体数组类型