mysql 优化表 表优化 OPTIMIZE

zblog1年前zblog问题解答62
定期运行数据库维护任务,如 

OPTIMIZE TABLE zbp_post

ANALYZE TABLE zbp_post

,以保持表和索引的性能。ANALYZE TABLE 命令会更新表的统计信息,帮助优化器做出更好的决策。 
如  ANALYZE TABLE zbp_post;

参考
 在MySQL中,当表经历了大量数据的插入和删除操作后,可能会导致表的碎片化和索引的不连续,从而影响查询性能。
使用 OPTIMIZE TABLE 命令来重建表和索引,这有助于消除碎片。
这个命令会重新组织表的物理存储结构,并重建所有索引,从而可能显著提高查询性能。



对于正常使用数据库(增删改查操作),OPTIMIZE TABLE 可能会产生以下影响:

锁定表:在执行 OPTIMIZE TABLE 时,表可能会被锁定,这意味着其他用户将无法对表进行写入操作(INSERT、UPDATE、DELETE)。读取操作(SELECT)可能会受到影响,具体取决于锁的类型和持续时间。然而,对于InnoDB表,锁定通常是短暂的,并且MySQL会尽量减小锁定对并发操作的影响。
系统资源消耗:OPTIMIZE TABLE 是一个重量级操作,可能会消耗大量的系统资源(如CPU、内存和I/O)。因此,在生产环境中执行此操作时,应谨慎考虑其对系统性能的影响,并尽量在业务低峰期进行。
二进制日志(binlog):该操作会产生大量的二进制日志,如果你的主从复制环境中主库的binlog传输到从库较慢,可能会导致从库延迟增加。
综上所述,OPTIMIZE TABLE 不会删除数据,但可能会影响数据库的并发操作和系统性能。因此,在执行此操作之前,建议评估其对业务的影响,并在合适的时间窗口内进行。同时,考虑使用数据库的自动优化功能(如InnoDB的自动碎片整理)来减少手动执行 OPTIMIZE TABLE 的频率。

定期运行数据库维护任务,如 OPTIMIZE TABLE 和 ANALYZE TABLE,以保持表和索引的性能。ANALYZE TABLE 命令会更新表的统计信息,帮助优化器做出更好的决策。 
如  ANALYZE TABLE zbp_post;

http://zblog.gongshi5.com/post/86.html 

相关文章

重建表 复制表 好办法

#(1)复制表结构。 ##  从要复制的表结构复制表语句 ,设置表名字, 注意 XIUGAI ENGINE=MYISAM A...

php require_once 包含文件不显示不执行不报错 就是空白,原因是 函数名字重复了。。。

php require_once 包含文件不显示不执行不报错 就是空白,原因是 函数名字重复了。。。每个插件 以插件名字 命名函数  或者以 插件名字开头的 类的静态函数 组织函数...

ad.php文件删除不掉,linux处理

1、   lsof | grep ad.php 如果文件正在被某个进程使用,那么它可能无法被删除。你可以使用 lsof 或 fuser&nb...

zblog查询数量sql num

$where = array('=', 'log_ID', 111); $num = $zbp-&...

在phpstorm中  $zbp->Load(); $zbp下面会刷红提示 未定义的变量 '$zbp' 但是在 require 'function/c_system_base.php';中已经有$GL

在phpstorm中 $zbp->Load(); $zbp下面会刷红提示 未定义的变量 '$zbp' 但是在 require 'function/c_system_base.php';中已经有$GL

在phpstorm中  $zbp->Load(); $zbp下面会刷红提示 未定义的变量 '$zbp' 但是在 require 'function/c_syst...

brotli 命令行工具 在centos 和 Ubuntu 分别怎么安装

在CentOS和Ubuntu上安装brotli命令行工具,可以按照以下步骤进行:在CentOS上安装brotli更新系统(可选但推荐):首先,确保你的CentOS系统已经更新到最新状态。bash复制代...