首页 > 其他 > 详细

optimize table 定期整理碎片

时间:2019-02-15 16:54:49      阅读:179      评论:0      收藏:0      [点我收藏+]

 

当频繁的对(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改,建议使用optimize table功能对这类表进行碎片整理,避免因为“空洞”导致性能问题。

OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用

注意,在OPTIMIZE TABLE运行过程中,MySQL会锁定表。

示例:

创建一个表t,字段中包含varchar和text的数据类型,使用repeat函数进行插入大量的字符串。

create table t (id varchar(100), context text);

insert into t values (1,repeat(haha,100));
......//大量的进行该类操作

进入存放表数据所在的文件夹。

查看my.cnf文件,找到datadir对应的路径,就是表数据存放的路径。

技术分享图片

例如当前的路径就是/var/lib/mysql,我的这张表创建在song这个数据库中。

cd  /var/lib/mysql/song     #表数据所在路径

du  -sh  t.*       #查看t的物理文件大小

技术分享图片

删除表中的大部分数据,在进行查看t的物理文件大小的操作,发现并没有因为数据删除而减少,接下来对表进行optimize 操作

 技术分享图片

技术分享图片

可以发现文件大小减少了

 

optimize table 定期整理碎片

原文:https://www.cnblogs.com/songcuiting/p/10384243.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!