MySQL优化全攻略-相关数据库命令

2016-01-29 14:55 8 1 收藏

MySQL优化全攻略-相关数据库命令,MySQL优化全攻略-相关数据库命令

【 tulaoshi.com - MySQL 】

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

▲ SHOW

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/mysql/)

执行下面这个命令可以了解服务器的运行状态:mysql show status;

该命令将显示出一长列状态变量及其对应的值,其中包括:被中止访问的用户数量,被中止的连接数量,尝试连接的次数,并发连接数量最大值,以及其他许多有用的信息。这些信息对于确定系统问题和效率低下的原因是十分有用的。

SHOW命令除了能够显示出MySQL服务器整体状态信息之外,它还能够显示出有关日志文件、指定数据库、表、索引、进程和许可权限表的宝贵信息。

▲ EXPLAIN

EXPLAIN能够分析SELECT命令的处理过程。这不仅对于决定是否要为表加上索引很有用,而且对于了解MySQL处理复杂连接的过程也很有用。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/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值分布不均匀

在进行任何优化之前,EXPLAIN对SELECT执行分析的结果如下:

table type possible_keys        key key_len ref rows Extra et  ALL PRIMARY           NULL NULL  NULL 74 do  ALL PRIMARY           NULL NULL  NULL 2135 et_1 ALL PRIMARY           NULL NULL  NULL 74 tt  ALL AssignedPC,ClientID,ActualPC NULL NULL  NULL 3872    range checked for each record (key map: 35)

来源:http://www.tulaoshi.com/n/20160129/1494707.html

延伸阅读
介绍 VC用ADO访问数据库全攻略,介绍了VC用ADO来访问数据库的各个对象及各方法,很经典,也很实用,很值得一看。   正文 一、ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和操作数据库服务器中的数据。ADO 最主要的...
在改进SQL Server 7.0系列所实现的安全机制的过程中,Microsoft建立了一种既灵活又强大的安全管理机制,它能够对用户访问SQL Server服务器系统和数据库的安全进行全面地管理。按照本文介绍的步骤,你可以为SQL Server 7.0(或2000)构造出一个灵活的、可管理的安全策略,而且它的安全性经得起考验。 一、验证方法选择 本文对验...
1:磁盘寻道能力,以高速硬盘(7200转/秒),理论上每秒寻道7200次.这是没有办法改变的,优化的方法是----用多个硬盘,或者把数据分散存储. 2:硬盘的读写速度,这个速度非常的快,这个更容易解决--可以从多个硬盘上并行读写. 3:cpu.cpu处理内存中的数据,当有相对内存较小的表时,这是最常见的限制因素. 4:内存的限制.当cpu需要...
问题描述: 我们要访问的表是一个非常大的表,四千万条记录,id是主键,program_id上建了索引。 执行一条SQL: select * from program_access_log where program_id between 1 and 4000 这条SQL非常慢。 我们原以为处理记录太多的原因,所以加了id限制,一次只读五十万条记录 select * from program_access_l...
标签: 办公软件
图1所示是我们日常工作中经常接触到Excel二维数据表格,我们经常需要通过需要根据表中某列数据字段(如“工程类型”)对数据进行分类汇总。 下面我们针对三种不同的分类汇总需求,为大家介绍不同的解决方案。 这三种需求分别是:既想分类汇总又想分类打印、不想分类打印只是想随时查看各类数据的明细和统计情况、不想打乱正常的流水式数据表...

经验教程

960

收藏

56
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部