Carry の Blog Carry の Blog
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • Python
  • Shell
  • MySQL8-SOP手册
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carry の Blog

好记性不如烂键盘
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • Python
  • Shell
  • MySQL8-SOP手册
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • MySQL

    • MySQL8一键安装配置优化
    • MySQL导出CSV格式解决乱码
    • MySQL 角色管理
    • MySQL网络抓包审计
    • MySQL性能压测
    • MySQL配合Consul读写分离
    • Gh-ost重建表,清除表碎片率
    • MySQL MGR配合MySQL-router实现innodb-cluster
    • MySQL 快速分析binlog定位问题
    • MySQL执行计划分析
    • DBA常用SQL和命令整理备查
    • mysqldump实时同步数据
    • MySQL的事务隔离级别
    • MySQL存储过程批量生成数据
    • MySQL insert on duplicate key update,replace into , insert ignore的理解
    • MySQL不同字符集之间的区别和选择
    • MySQL为什么有时候会选错索引
    • MySQL死锁问题
    • MySQL使用SQL语句查重去重
    • MySQLdump逻辑备份
    • MySQL主从跳过异常GITD
    • MySQL8设置slowlog记录所有语句
    • MySQL8快速克隆插件使用指南
    • MySQL8双1设置保障安全
    • MySQL锁
    • innodb cluster安装
    • MySQL里的left join 和right join以及inner join
    • optimize table和 analyze table的区别
    • MySQL 字段的区分度计算公式
    • MySQLReplicaSet 安装
    • 脚本实现MySQL ReplicaSet 高可用
    • MySQL 的Left join,Right join和Inner join 的区别
    • MySQL45讲学习笔记
  • Redis

  • Keydb

  • TiDB

  • MongoDB

  • Elasticsearch

  • Kafka

  • victoriametrics

  • BigData

  • Sqlserver

  • 数据库
  • MySQL
Carry の Blog
2022-03-12

optimize table和 analyze table的区别原创

OPTIMIZE TABLE和ANALYZE TABLE都是MySQL中用于优化表性能的命令,但它们的作用有所不同。

OPTIMIZE TABLE命令可以用来优化MySQL表的物理存储结构,包括索引和数据。它会重建表,并清除空闲的空间,从而减少表的碎片,提高查询性能。具体来说,OPTIMIZE TABLE会执行以下操作:

  1. 重新组织表的物理存储结构,将碎片化的数据块重新组合成更紧凑的形式,以提高表的查询性能。

  2. 重建表的所有索引,以提高查询效率。

  3. 释放表中未被使用的空间,以减少表的大小。

ANALYZE TABLE命令则用于更新MySQL表中的统计信息,以帮助MySQL优化查询计划。它会分析表的数据分布,计算出表中每个列的统计信息,包括最大值、最小值、平均值和标准差等。具体来说,ANALYZE TABLE会执行以下操作:

  1. 收集表中的统计信息,包括表的大小、行数和索引的使用情况。

  2. 对表中的每个列进行统计分析,包括计算每个列的最大值、最小值、平均值和标准差等。

  3. 根据统计信息更新MySQL的查询优化器,以提高查询性能。

总的来说,OPTIMIZE TABLE用于优化MySQL表的物理存储结构,而ANALYZE TABLE则用于更新MySQL的查询优化器,以提高查询性能。一般来说,当表的大小变化较大或者表的数据分布发生较大变化时,可以使用ANALYZE TABLE来更新统计信息,以帮助MySQL优化查询计划;而当表的碎片化较严重时,可以使用OPTIMIZE TABLE来重新组织表的物理存储结构,以提高查询性能。

上次更新: 4/24/2025

← MySQL里的left join 和right join以及inner join MySQL 字段的区分度计算公式→

最近更新
01
tidb fast ddl
04-04
02
TiDB配置文件调优 原创
04-03
03
如何移除TiDB中的表分区 原创
04-03
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式