解析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 相关文章推荐
web方式ftp
Oct 09 PHP
PHP开发入门教程之面向对象
Dec 05 PHP
php中选择什么接口(mysql、mysqli)访问mysql
Feb 06 PHP
浅析关于PHP位运算的简单权限设计
Jun 30 PHP
php抽象类使用要点与注意事项分析
Feb 09 PHP
php输出xml属性的方法
Mar 19 PHP
Yii实现自动加载类地图的方法
Apr 01 PHP
PHP简单生成缩略图相册的方法
Jul 29 PHP
PHP实现导出excel数据的类库用法示例
Oct 15 PHP
微信公众号开发之通过接口删除菜单
Feb 20 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
ThinkPHP框架实现FTP图片上传功能示例
Apr 08 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
phplot生成图片类用法详解
2015/01/06 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
jquery带动画效果幻灯片特效代码
2015/08/27 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
简单介绍Ruby中的CGI编程
2015/04/10 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
pandas apply多线程实现代码
2020/08/17 Python
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
html5 跨文档消息传输示例探讨
2013/04/01 HTML / CSS
埃弗顿足球俱乐部官方网上商店:Everton Direct
2018/01/13 全球购物
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
怎样写好自我鉴定
2013/12/04 职场文书
劳动之星获奖感言
2014/02/01 职场文书
教研活动总结
2014/04/28 职场文书
2014高考励志标语
2014/06/05 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
工程安全生产协议书
2014/11/21 职场文书
企业法律事务工作总结
2015/08/11 职场文书
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis
python使用BeautifulSoup 解析HTML
2022/04/24 Python