解析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 chmod 函数与批量修改文件目录权限
May 10 PHP
php利用cookie实现访问次数统计代码
May 19 PHP
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
Jun 16 PHP
php警告Creating default object from empty value 问题的解决方法
Apr 02 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
php继承中方法重载(覆盖)的应用场合
Feb 09 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 PHP
PHP 获取客户端 IP 地址的方法实例代码
Nov 11 PHP
php 实现银联商务H5支付的示例代码
Oct 12 PHP
Laravel6.18.19如何优雅的切换发件账户
Jun 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
php简单定时执行任务的实现方法
2015/02/23 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
百度 popup.js 完美修正版非常的不错 脚本之家推荐
2009/04/17 Javascript
基于jQuery的星级评分插件
2011/08/12 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
2016/08/26 Javascript
JS验证全角与半角及相互转化的介绍
2017/05/18 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
浅谈Postman解决token传参的问题
2018/03/31 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
2019/02/27 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
linux下安装easy_install的方法
2013/02/10 Python
python快速排序代码实例
2013/11/21 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
python实现ssh及sftp功能(实例代码)
2020/03/16 Python
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
团队激励口号
2014/06/06 职场文书
2014年教师节座谈会发言稿
2014/09/10 职场文书
群众路线个人整改方案
2014/10/25 职场文书
北京天坛导游词
2015/02/12 职场文书
2015学生会文艺部工作总结
2015/04/03 职场文书
优质服务标语口号
2015/12/26 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL
详解SQL的窗口函数
2022/04/21 Oracle