解析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+APACHE实现用户论证的方法
Oct 09 PHP
DedeCMS dede_channeltype表字段注释
Apr 07 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
Jun 28 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
Apr 09 PHP
深入掌握include_once与require_once的区别
Jun 17 PHP
PHP 使用MySQL管理Session的回调函数详解
Jun 21 PHP
php常用Stream函数集介绍
Jun 24 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
Jul 18 PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 PHP
php session的应用详细介绍
Mar 22 PHP
PHP如何使用JWT做Api接口身份认证的实现
Feb 03 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 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遍历并打印指定目录下所有文件实例
2014/02/10 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
更正确的asp冒泡排序
2007/05/24 Javascript
jQuery 名称冲突的解决方法
2011/04/08 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
js表单提交和submit提交的区别实例分析
2015/12/10 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
nuxt.js写项目时增加错误提示页面操作
2020/11/05 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
python 正则式 概述及常用字符
2009/05/07 Python
python实现网站的模拟登录
2016/01/04 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
Atom的python插件和常用插件说明
2018/07/08 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
Python网络爬虫信息提取mooc代码实例
2020/03/06 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
自我鉴定书范文
2013/10/02 职场文书
集团公司总经理岗位职责
2013/12/20 职场文书
大队干部竞选演讲稿
2014/04/28 职场文书
房屋维修协议书范本
2014/09/25 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
寻找成龙观后感
2015/06/12 职场文书
幼儿体育课教学反思
2016/02/16 职场文书
Python Django 后台管理之后台模型属性详解
2021/04/25 Python
Python爬虫之自动爬取某车之家各车销售数据
2021/06/02 Python
Python实现socket库网络通信套接字
2021/06/04 Python
pytorch 权重weight 与 梯度grad 可视化操作
2021/06/05 Python