Rumah >pangkalan data >tutorial mysql >用相关数据库命令对MySQL进行优化_MySQL

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBasal
2016-06-01 13:55:231013semak imbas

我们讨论的是数据库性能优化的另一方面,即运用数据库服务器内建的工具辅助性能分析和优化。

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

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn