解析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.PHP入门
Oct 09 PHP
PHP文件打开、关闭、写入的判断与执行代码
May 24 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
解析php curl_setopt 函数的相关应用及介绍
Jun 17 PHP
PHP中变量引用与变量销毁机制分析
Nov 15 PHP
PHP使用PHPexcel导入导出数据的方法
Nov 14 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
Mar 01 PHP
PHP实现对xml的增删改查操作案例分析
May 19 PHP
PHP array_reduce()函数的应用解析
Oct 28 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 PHP
如何在PHP中使用数组
Jun 09 PHP
PHP number_format函数原理及实例解析
Jul 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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
js 判断浏览器使用的语言示例代码
2014/03/22 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
2019/06/05 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python在不同目录下导入模块的实现方法
2017/10/27 Python
python中abs&map&reduce简介
2018/02/20 Python
PyTorch上实现卷积神经网络CNN的方法
2018/04/28 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
Python同步遍历多个列表的示例
2019/02/19 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
2019/03/27 Python
Python中的引用知识点总结
2019/05/20 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
python3访问字典里的值实例方法
2020/11/18 Python
python 模拟登陆163邮箱
2020/12/15 Python
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
心理健康课教学反思
2014/02/13 职场文书
销售员求职个人的自我评价
2014/02/19 职场文书
党员公开承诺践诺书
2014/03/25 职场文书
庆祝国庆节标语
2014/10/09 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技
Python开发简易五子棋小游戏
2022/05/02 Python