操作环境:ubuntu 14.10   mysql 5.6.25

对含有BLOB或TEXT字段的表,若经常做修改或删除类的操作,需要定期执行OPTIMIZE TABLE命令来整理碎片。

1.create table t1(id varchar(64), content text)engine=myisam, default charset=utf8;

存储引擎使用myisam

2.插入数据

insert into t1 values(1, repeat('tony', 100));          --repeat('tony', 100),返回tony重复100次后的数据

insert into t1 values(2, repeat('tony', 100));

insert into t1 values(3, repeat('tony', 100));

快速往表中插入大量数据的一种好方式,重复执行下面的语句

insert into t1 select * from t1;   --从t1查询出所有数据,再插入t1表,数据成倍增长

3.查看文件大小

root@ubuntu2:/var/lib/mysql/tsetest# du -sh t1.*
12K t1.frm
310M t1.MYD
4.0K t1.MYI

4.删除数据再查看文件大小

mysql> delete from t1 where id = 2;
Query OK, 262144 rows affected (2.04 sec)

root@ubuntu2:/var/lib/mysql/tsetest# du -sh t1.*
12K t1.frm
310M t1.MYD
4.0K t1.MYI

发现删除大量数据后,表文件的物理大小并没有减少。

5.使用OPTIMIZE TABLE命令整理表碎片

mysql> optimize table t1;
+------------+----------+----------+----------+
| Table      | Op       | Msg_type | Msg_text |
+------------+----------+----------+----------+
| tsetest.t1 | optimize | status   | OK       |
+------------+----------+----------+----------+
1 row in set (2.34 sec)

root@ubuntu2:/var/lib/mysql/tsetest# du -sh t1.*
12K t1.frm
206M t1.MYD
4.0K t1.MYI

使用OPTIMIZE TABLE命令整理表碎片后,表文件大小减少了将近三分之一。

使用OPTIMIZE TABLE命令来整理表碎片实践的更多相关文章

  1. mysql optimize整理表碎片

    当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删 除操作后在数据文件中留下碎片所致.optimize table 可以去除删除操作后留下的数据文件碎片,减小文件尺寸,加快未 ...

  2. Oracle 数据库整理表碎片

    Oracle 数据库整理表碎片 转载:http://kyle.xlau.org/posts/table-fragmentation.html 表碎片的来源 当针对一个表的删除操作很多时,表会产生大量碎 ...

  3. MySQL表碎片整理

    MySQL表碎片整理 1. 计算碎片大小 2. 整理碎片 2.1 使用alter table table_name engine = innodb命令进行整理. 2.2 使用pt-online-sch ...

  4. mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)

    随着mysql的长期使用,可以修复表来优化,优化时减少磁盘占用空间.方便备份. REPAIR TABLE `table_name` 修复表 OPTIMIZE TABLE `table_name` 优化 ...

  5. mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)

    REPAIR TABLE `table_name` 修复表 OPTIMIZE TABLE `table_name` 优化表 show create table tablename   表结构 REPA ...

  6. mysql下优化表和修复表命令(repair table、optimize table)

    随着mysql的长期使用,肯定会出现一些问题,一般情况下mysql表无法访问,就可以修复表了,优化时减少磁盘占用空间,方便备份. repair table table_name //修复表 optim ...

  7. 08 Oracle表碎片查询以及整理(高水位线)

    Oracle表碎片查询以及整理(高水位线) 1.表碎片的来源 当针对一个表的删除操作很多时,表会产生大量碎片.删除操作释放的空间不会被插入操作立即重用,甚至永远也不会被重用. 2.怎样确定是否有表碎片 ...

  8. OPTIMIZE TABLE的作用--转载

    当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删 除操作后在数据文件中留下碎片所致.Discuz! 在系统数设置界面提供了数据表优化的功能,可以去除删除操作后留下的数据文件 ...

  9. REORG TABLE命令优化数据库性能

    [转]DB2日常维护——REORG TABLE命令优化数据库性能     一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作,以便更好的监控和维护数据库,保证数据库的正常.安全.高效运行,防止 ...

随机推荐

  1. vijos 1053Easy sssp

    P1053Easy sssp Accepted 标签:图结构 最短路     描述 输入数据给出一个有N(2 <= N <= 1,000)个节点,M(M <= 100,000)条边的 ...

  2. js解析xml,获取XMl标签属性值

    <script type="text/javascript"> var xml="<?xml version=\"1.0\" enc ...

  3. [CAMCOCO][C#]我的系统架构.服务器端.(四)----Model层 实体的自我验证

    这是Model的第二篇,上一篇点这里 这块完全是扒了@何镇汐大神博客里的教程实现的,在这之前完全没想到数据验证居然可以这样做!!在此表示严重感谢!!! 点击这里可以去了解这个方法的原理,老胡估计自己是 ...

  4. fitsSystemWindow作用

    fitsSystemWindows layout属性 英文文档注释为: Boolean internal attribute to adjust view layout based on system ...

  5. php删除数组中相同的元素,只保留一个相同元素

    <?php// 删除数组中相同元素,只保留一个相同元素function formatArray($array){sort($array);$tem = ”;$temarray = array() ...

  6. Cocos移植到Android的一些问题-中文乱码问题

    Android平台版本和设备碎片化很严重,因此从Win32平台移植到Android平台会有很多问题,下面是我们归纳的从Win32平台移植到Android平台遇到的一些问题.在Android平台中文乱码 ...

  7. 学习 AngularJS 第一天

    AngularJS 高级程序设计 遇到问题:安装web服务器 var connect = require("connect"); connect.createServer( con ...

  8. 对象属性封装到map中

    import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.lang.reflect.Modi ...

  9. 会场安排问题—NYOJ14

    时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工作就是安排学校 ...

  10. EF调用存储过程

    var objPar1 = new System.Data.Objects.ObjectParameter("ExeResults",typeof(bool)); var objP ...