mysql表优化
一、定期分析表
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_BINLOG] 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
Name 表名称
Engine 表的存储引擎
Version 版本
Row_format
行格式。对于MyISAM引擎,这可能是Dynamic,Fixed或Compressed。动态行的行长度
可变,例如Varchar或Blob类型字段。固定行是指行长度不变,例如Char和Integer类型字
段。
Rows
表中的行数。对于非事务性表,这个值是精确的,对于事务性引擎,这个值通常是估算的。
Avg_row_length
平均每行包括的字节数 。
Data_length
整个表的数据量(单位:字节)。
Max_data_length
表可以容纳的最大数据量。
Index_length
索引占用磁盘的空间大小 。
Data_free
对于MyISAM引擎,标识已分配,但现在未使用的空间,并且包含了已被删除行的空间。
Auto_increment
下一个Auto_increment的值。
Create_time
表的创建时间。
Update_time
表的最近更新时间。
Check_time
使用 check table 或myisamchk工具检查表的最近时间。
Collation
表的默认字符集和字符排序规则。
Checksum
如果启用,则对整个表的内容计算时的校验和。
Create_options
指表创建时的其他所有选项。
Comment
包含了其他额外信息,对于MyISAM引擎,包含了注释徐标新,如果表使用的是innodb引擎 ,将现实表的剩余空间。如果是一个视图,注释里面包含了VIEW字样。