欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

用相关数据库命令对MySQL进行优化_MySQL

程序员文章站 2022-05-14 08:13:10
...
我们讨论的是数据库性能优化的另一方面,即运用数据库服务器内建的工具辅助性能分析和优化。

▲ 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值分布不均匀

相关标签: 数据库