用相关数据库命令对MySQL进行优化_MySQL
▲ show
执行下面这个命令可以了解服务器的运行状态:mysql >show status;
该命令将显示出一长列状态变量及其对应的值,其中包括:被中止访问的用户数量,被中止的连接数量,尝试连接的次数,并发连接数量最大值,以及其他许多有用的信息。这些信息对于确定系统问题和效率低下的原因是十分有用的。
show命令除了能够显示出mysql服务器整体状态信息之外,它还能够显示出有关日志文件、指定数据库、表、索引、进程和许可权限表的宝贵信息。
▲ explain
explain能够分析select命令的处理过程。这不仅对于决定是否要为表加上索引很有用,而且对于了解mysql处理复杂连接的过程也很有用。
下面这个例子显示了如何用explain提供的信息逐步地优化连接查询。(本例来自mysql文档,见http://www.mysql.com/doc/e/x/explain.html。原文写到这里似乎有点潦草了事,特加上此例。)
假定用explain分析的select命令如下所示:
explain select tt.ticketnumber, tt.timein,
tt.projectreference, tt.estimatedshipdate,
tt.actualshipdate, tt.clientid,
tt.servicecodes, tt.repetitiveid,
tt.currentprocess, tt.currentdpperson,
tt.recordvolume, tt.dpprinted, et.country,
et_1.country, do.custname
from tt, et, et as et_1, do
where tt.submittime is null
and tt.actualpc = et.employid
and tt.assignedpc = et_1.employid
and tt.clientid = do.custnmbr;
select命令中出现的表定义如下:
表定义
表 列 列类型
tt actualpc char(10)
tt assignedpc char(10)
tt clientid char(10)
et employid char(15)
do custnmbr char(15)
索引
表 索引
tt actualpc
tt assignedpc
tt clientid
et employid (主键)
do custnmbr (主键)
tt.actualpc值分布不均匀
推荐阅读