数据库方面两个简单实用的优化方法(转)

原文:http://bbs.landingbj.com/t-0-242112-1.html

一 定期分析表

ANALYZE TABLE


语法:

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


本语句用于分析和存储表的关键字分布。在分析期间,使用一个读取锁定对表进行锁定。这对于 MyISAM和InnoDB 表有作用。对于MyISAM表,本语句与使用 myisamchk -a 相当。

CHECK TABLE


语法:

CHECK TABLE tbl_name [, tbl_name] ... [option] ...
option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}


检查一个或多个表是否有错误。CHECK TABLE对MyISAM和InnoDB表有作用。对于MyISAM 表,关键字统计数据被更新。CHECK TABLE也可以检查视图是否有错误,比如在视图定义中被引用的表已不存在。

CHECKSUM TABLE


语法:

CHECKSUM TABLE tbl_name [, tbl_name] ... [ QUICK | EXTENDED ]


报告一个表校验和。

二 使用OPTIMIZE TABLE 

OPTIMIZE TABLE


语法:

OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...


OPTIMIZE TABLE 只对MyISAM和InnoDB表起作用。如果已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有 VARCHAR, BLOB 或 TEXT 列的表)进行了很多更改,则应使用 OPTIMIZE TABLE。被删除的记录被保持在链接清单中,后续的 INSERT 操作会重新使用旧的记录位置。可以使用 OPTIMIZE TABLE 来重新利用未使用的空间,并整理数据文件的碎片。

上 述两种方法都是使用MySQL的内建命令,简单实用,可以胜任基础的优化工作。第一个方法是分析表,通过得到的信息分析表是否有问题,第二个方法是优化 表,OPTIMIZE TABLE的功能和Oracle的SHRINK SPACE有些类似之处,简单粗暴。但Oracle中不能随便使用 SHRINK SPACE。

猜你喜欢

转载自www.cnblogs.com/jackzz/p/9125900.html