解析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 相关文章推荐
实用函数2
Nov 08 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
Aug 07 PHP
PHP 检查扩展库或函数是否可用的代码
Apr 06 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
Sep 16 PHP
php将字符串转换成16进制的方法
Mar 17 PHP
Yii多表联合查询操作详解
Jun 02 PHP
PHP实现导出带样式的Excel
Aug 28 PHP
php封装的smartyBC类完整实例
Oct 19 PHP
PHP扩展Swoole实现实时异步任务队列示例
Apr 13 PHP
Yii框架视图、视图布局、视图数据块操作示例
Oct 14 PHP
Laravel实现批量更新多条数据
Apr 06 PHP
PHP与Web页面的交互示例详解二
Aug 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应用技巧
2008/03/27 PHP
PHP安全防范技巧分享
2011/11/03 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
javascript FormatNumber函数实现方法
2008/12/30 Javascript
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
使用Angular CLI生成路由的方法
2018/03/24 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
Python中的魔法方法深入理解
2014/07/09 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
Python 正则表达式匹配字符串中的http链接方法
2018/12/25 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
python图片指定区域替换img.paste函数的使用
2020/04/09 Python
python之语音识别speech模块
2020/09/09 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
玩转CSS3色彩
2010/01/16 HTML / CSS
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
中英文自我评价语句
2013/12/20 职场文书
公务员保密承诺书
2014/03/27 职场文书
电子信息工程自荐信
2014/05/26 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
社区安全温馨提示语
2015/07/14 职场文书