深圳全飞鸿

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 687|回复: 2
打印 上一主题 下一主题

mysql中Analyze Table /OPTIMIZE TABLE的作用及使用

[复制链接]

800

主题

1379

帖子

7704

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7704
跳转到指定楼层
楼主
发表于 2020-10-1 17:25:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhgc 于 2021-5-1 16:01 编辑

mysql中OPTIMIZE TABLE的作用及使用

optimize来进行碎片整理
analyze table优化表的统计信息


来看看手册中关于 OPTIMIZE 的描述:

OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改,则应使用
OPTIMIZE TABLE。被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置。您可以使用OPTIMIZE TABLE来重新
利用未使用的空间,并整理数据文件的碎片。

在多数的设置中,您根本不需要运行OPTIMIZE TABLE。即使您对可变长度的行进行了大量的更新,您也不需要经常运行,每周一次或每月一次
即可,只对特定的表运行。

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

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

做以下实验:

删除一部数据前:
107表现有数据量为:17430956

索引信息:
show index from r_wip_tracking_t from sfc;


删除了3751568行数据后:

索引信息:


show table status like 'r_wip_tracking_t'\G


先做analyse table
速度很快



ananyse后。看数据库文件大小,没有变,还是17.45G

继续做OPTIMIZE  table
执行过程时间很长




回复

使用道具 举报

800

主题

1379

帖子

7704

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7704
沙发
 楼主| 发表于 2020-10-1 18:31:57 | 只看该作者

回复 支持 反对

使用道具 举报

800

主题

1379

帖子

7704

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7704
板凳
 楼主| 发表于 2021-5-3 12:49:24 | 只看该作者


check table `sfc`.`all_source` Quick
optimize  table `sfc`.`all_source`
analyze  table `sfc`.`all_source`
repair  table `sfc`.`all_source`



回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|nagomes  

GMT+8, 2025-5-5 01:33 , Processed in 0.035279 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表