解析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读取30天之内的根据算法排序的代码
Apr 06 PHP
php学习之 循环结构实现代码
Jun 09 PHP
20个PHP常用类库小结
Sep 11 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
Nov 14 PHP
php创建多级目录的方法
Mar 24 PHP
PHP异常处理浅析
May 12 PHP
微信公众平台开发之配置与请求
Aug 26 PHP
WordPress中邮件的一些修改和自定义技巧
Dec 15 PHP
php微信开发接入
Aug 27 PHP
php获取文件名称和扩展名的方法
Feb 07 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 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正确配置mysql(apache环境)
2011/08/28 PHP
PHP无限分类(树形类)
2013/09/28 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
Dom操作之兼容技巧分享
2011/09/20 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
jQuery操作属性和样式详解
2016/04/13 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
公认8个效率最高的爬虫框架
2020/07/28 Python
python如何设置静态变量
2020/09/07 Python
python爬虫---requests库的用法详解
2020/09/28 Python
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
关于旷工的检讨书
2014/02/02 职场文书
大学生学年自我鉴定
2014/02/10 职场文书
公关活动策划方案
2014/05/25 职场文书
公司离职证明范本
2014/10/17 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
司机岗位职责
2015/02/04 职场文书
年度考核个人总结
2015/03/06 职场文书
毕业赠语大全
2015/06/23 职场文书