解析mysql 表中的碎片产生原因以及清理


Posted in PHP onJune 22, 2013

大量删除数据必然会在数据文件中造成不连续的空白空间,而当插入数据时,这些空白空间则会被利用起来 。
对于不同的存储引擎整理碎片的方式不一样。
myisam
可以有以下方式:
mysql> show table status from test like 'testusers'\G
*************************** 1. row ***************************
  ....
           Rows: 3
 Avg_row_length: 45
         Data_free: 40
.....
因为在中间删除,所以留下了空白
mysql> optimize table testusers;
+----------------+----------+----------+----------+
| Table          | Op       | Msg_type | Msg_text |
+----------------+----------+----------+----------+
| test.testusers | optimize | status   | OK       |
+----------------+----------+----------+----------+
1 row in set (0.00 sec)
mysql> show table status from test like 'testusers'\G
*************************** 1. row ***************************
   ...
           Rows: 3
 Avg_row_length: 32
    Data_length: 96
      Data_free: 0
1 row in set (0.00 sec)
在optimize后,Data_free已经变为0.碎片数据被清除。
同样还可以用以下方式,效果和optimize一样
./bin/mysqlcheck  -uroot -proot --socket=./tmp/mysql.sock  -o test testusers
innodb
对于innodb 使用optimize和mysqlcheck都不起作用,可以如下进行
对于小表的话直接用ALTER TABLE table_name ;回收表空间,对于大表就不能直接采用这种方式,因为会造成长时间的锁表。可以采用新建表转移数据,然后删除旧表的形式,然后再重命名表。

另外有个python可以查看innodb表空间信息,可以在网上找哈,用python写的。

PHP 相关文章推荐
PHP循环获取GET和POST值的代码
Apr 09 PHP
解决MySQL中文输出变成问号的问题
Jun 05 PHP
提高php运行速度的一些小技巧分享
Jul 03 PHP
PHP5各个版本的新功能和新特性总结
Mar 16 PHP
PHP小教程之实现链表
Jun 09 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
WordPress中的shortcode短代码功能使用详解
May 17 PHP
yii 2.0中表单小部件的使用方法示例
May 23 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
Jun 06 PHP
php-msf源码详解
Dec 25 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
Yii框架数据库查询、增加、删除操作示例
Oct 14 PHP
解析thinkphp中的M()与D()方法的区别
Jun 22 #PHP
AJAX的跨域访问-两种有效的解决方法介绍
Jun 22 #PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
Jun 21 #PHP
PHP中mb_convert_encoding与iconv函数的深入解析
Jun 21 #PHP
解析php获取字符串的编码格式的方法(函数)
Jun 21 #PHP
浅析PHP页面局部刷新功能的实现小结
Jun 21 #PHP
解析php中var_dump,var_export,print_r三个函数的区别
Jun 21 #PHP
You might like
php实现首页链接查询 友情链接检查的代码
2010/01/05 PHP
php设计模式之观察者模式的应用详解
2013/05/21 PHP
解析获取优酷视频真实下载地址的PHP源代码
2013/06/26 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
PHP编译configure时常见错误的总结
2017/08/17 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
基于jQuery架构javascript基础体系
2011/01/01 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
JS选项卡动态替换banner图片路径的方法
2015/05/11 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
2015/08/31 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
了解VUE的render函数的使用
2017/06/08 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
python主要用于哪些方向
2020/07/05 Python
python 中 .py文件 转 .pyd文件的操作
2021/03/04 Python
护理学中专毕业生求职信
2013/11/11 职场文书
自荐信封面
2013/12/04 职场文书
检察官就职演讲稿
2014/01/13 职场文书
人事主管岗位职责
2014/01/30 职场文书
大学活动总结范文
2014/04/29 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
2015年党小组工作总结
2015/05/26 职场文书
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python