MYSQL进阶学习笔记十一:MySQL 表的分析,检查和优化!(视频序号:进阶_28)

时间:2022-09-22 08:27:17

知识点十二:MySQL 表的分析,检查和优化(28)

  表的分析,检查和优化:

    定期分析表:

      ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [,tbl_name]

    定期检查表:

      CHECK TABLE tbl_name [,tbl_name] [option]

        备注:CHECK TABLE也可以检查视图是否有错误,比如在视图定义中引用的表已不存在。

    定期优化表:

      OPTIMIZE [LOCAL | NO_WRITE_TO_GINLOG] TABLE tbl_name [,tbl_name]

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

      对于MyISAM表,OPTIMIZE TABLE按如下方式操作:

        如果表已经删除或分解了行,则修复表。

        如果未对索引页进行分类,则进行分类。

        如姑表的统计数据没有更新(并且通过对索引进行分类不能实现修复),则进行更新。

    备注:

      需要注意的是无论ANALYZE,CHECK还是OPTIMIZE在执行期间将对表进行锁定,因此请注意这些操作要在数据库不繁忙的时候执行。

 

  获取表的相关信息:

    SHOW TABLE STATUS 获取表的信息;

    SHOW TABLE STATUS LIKE ‘tablename’\G

     1.Name:表名称

          2.Engine:表的存储引擎

          3.Version:版本

          4.Row_format:行格式。对于MyISAM引擎,这可能是Dynamic,Fixed或Compressed。动态的行长度可变,例如Varchar或Blob类型字段。固定行是指行长度不变,例如Char和Integer类型字段。

          5.Rows:表中的行数。对于非事务性表,这个值时精确的,对于事务性引擎,这个值通常时估算的。

          6.Avg_row_length:平均每行的字节数

          7.Date_length:整个表的数据量(单位:字节)

          8.Max_data_length:表可以容纳的最大数据量

          9.Index_length:索引占用磁盘的空间

          10.Data_free:对于MyISAM引擎,标识已分配,但现在未使用的空间,并且包含了已被删除行的空间。

          11.Auto_increment:下一个Auto_increment的值

          12.Create_time:表的创建时间

          13.Updata_time:表的最近更新时间

          14.Check_time:使用check table或myisamchk工具检查表的时间

          15.Collation:表示默认字符集和排序规则

          16.Checksum:如果启用,则对整个表的内容计算时的校验和

          17.Create_options:指表创建时的其他所有选项

          18.Comment:包含了其他额外信息,对于MyISAM引擎,包含了注释徐标新,如果表使用的时InnoDB引擎,将显示表的剩余空间。

      如果是一个视图,注释里边包含VIEW字样。