分析表主要作用是分析关键字的分布。检查表主要作用是检查表是否存在错误。优化表主要作用是消除删除或者更新造成的空间浪费。本小节将为读者介绍分析表、检查表和优化表的方法。
1.分析表
MySQL中使用ANALYZE TABLE语句来分析表,该语句的基本语法如下:
ANALYZE TABLE 表名1 [,表名2…] ;
使用ANALYZE TABLE分析表的过程中, 数据库 系统会对表加一个只读锁。在分析期间,只能读取表中的记录,不能更新和插入记录。ANALYZE TABLE语句能够分析InnoDB和MyISAM类型的表。
【示例18-8】 下面使用ANALYZE TABLE语句分析score表,分析结果如下:
mysql > ANALYZE TABLE score;
+-------------+-----------+--------------+---------------+
| Table | Op | Msg_type | Msg_text |
+-------------+-----------+--------------+---------------+
| test.score | analyze | status | OK |
+-------------+-----------+--------------+---------------+
1 row in set (0.05 sec)
上面结果显示了4列信息,详细介绍如下:
Table:表示表的名称;
Op:表示执行的操作。analyze表示进行分析操作。check表示进行检查查找。optimize表示进行优化操作;
Msg_type:表示信息类型,其显示的值通常是状态、警告、错误和信息这四者之一;
Msg_text:显示信息。
检查表和优化表之后也会出现这4列信息。
2.检查表
MySQL中使用CHECK TABLE语句来检查表。CHECK TABLE语句能够检查InnoDB和MyISAM类型的表是否存在错误。而且,该语句还可以检查视图是否存在错误。该语句的基本语法如下:
CHECK TABLE 表名1 [,表名2…] [option] ;
其中,option参数有5个参数,分别是QUICK、FAST、CHANGED、MEDIUM和EXTENDED。这5个参数的执行效率依次降低。option选项只对MyISAM类型的表有效,对InnoDB类型的表无效。CHECK TABLE语句在执行过程中也会给表加上只读锁。
3.优化表
MySQL中使用OPTIMIZE TABLE语句来优化表。该语句对InnoDB和MyISAM类型的表都有效。但是,OPTILMIZE TABLE语句只能优化表中的VARCHAR、BLOB或TEXT类型的字段。OPTILMIZE TABLE语句的基本语法如下:
OPTIMIZE TABLE 表名1 [,表名2…] ;
通过OPTIMIZE TABLE语句可以消除删除和更新造成的磁盘碎片,从而减少空间的浪费。OPTIMIZE TABLE语句在执行过程中也会给表加上只读锁。
说明:如果一个表使用了TEXT或者BLOB这样的数据类型,那么更新、删除等操作就会造成磁盘空间的浪费。因为,更新和删除操作后,以前分配的磁盘空间不会自动收回。使用OPTIMIZE TABLE语句就可以将这些磁盘碎片整理出来,以便以后再利用。
1.分析表
MySQL中使用ANALYZE TABLE语句来分析表,该语句的基本语法如下:
ANALYZE TABLE 表名1 [,表名2…] ;
使用ANALYZE TABLE分析表的过程中, 数据库 系统会对表加一个只读锁。在分析期间,只能读取表中的记录,不能更新和插入记录。ANALYZE TABLE语句能够分析InnoDB和MyISAM类型的表。
【示例18-8】 下面使用ANALYZE TABLE语句分析score表,分析结果如下:
mysql > ANALYZE TABLE score;
+-------------+-----------+--------------+---------------+
| Table | Op | Msg_type | Msg_text |
+-------------+-----------+--------------+---------------+
| test.score | analyze | status | OK |
+-------------+-----------+--------------+---------------+
1 row in set (0.05 sec)
上面结果显示了4列信息,详细介绍如下:
Table:表示表的名称;
Op:表示执行的操作。analyze表示进行分析操作。check表示进行检查查找。optimize表示进行优化操作;
Msg_type:表示信息类型,其显示的值通常是状态、警告、错误和信息这四者之一;
Msg_text:显示信息。
检查表和优化表之后也会出现这4列信息。
2.检查表
MySQL中使用CHECK TABLE语句来检查表。CHECK TABLE语句能够检查InnoDB和MyISAM类型的表是否存在错误。而且,该语句还可以检查视图是否存在错误。该语句的基本语法如下:
CHECK TABLE 表名1 [,表名2…] [option] ;
其中,option参数有5个参数,分别是QUICK、FAST、CHANGED、MEDIUM和EXTENDED。这5个参数的执行效率依次降低。option选项只对MyISAM类型的表有效,对InnoDB类型的表无效。CHECK TABLE语句在执行过程中也会给表加上只读锁。
3.优化表
MySQL中使用OPTIMIZE TABLE语句来优化表。该语句对InnoDB和MyISAM类型的表都有效。但是,OPTILMIZE TABLE语句只能优化表中的VARCHAR、BLOB或TEXT类型的字段。OPTILMIZE TABLE语句的基本语法如下:
OPTIMIZE TABLE 表名1 [,表名2…] ;
通过OPTIMIZE TABLE语句可以消除删除和更新造成的磁盘碎片,从而减少空间的浪费。OPTIMIZE TABLE语句在执行过程中也会给表加上只读锁。
说明:如果一个表使用了TEXT或者BLOB这样的数据类型,那么更新、删除等操作就会造成磁盘空间的浪费。因为,更新和删除操作后,以前分配的磁盘空间不会自动收回。使用OPTIMIZE TABLE语句就可以将这些磁盘碎片整理出来,以便以后再利用。