当前位置:首页 > 日记 > 正文

MySQL数据库性能优化分析的六种技术

MySQL数据库性能优化分析的六种技术
有一个对数据库表的表面误差预防机制的指标,但一个简单的查询将需要很长的时间。Web应用程序可以在开发环境中运行良好,但在产品环境表现为严重。如果你是一个数据库管理员,您可能会遇到这样的情况,在某一个阶段因此,本文将介绍技巧性能优化MySQL。

选择1。存储引擎
如果一个数据表需要事务处理,你应该考虑使用InnoDB,因为它完全符合ACID特性。建议如果事务处理不需要使用默认的存储引擎MyISAM。不要同时使用这两个存储引擎。想想看:在一个事务中,一些数据表使用InnoDB,而其余使用MyISAM。结果,整个主题将被取消。只有那些在交易过程中被带回到原来的状态,和提交的数据的其余部分将被转移,这将导致整个数据库的冲突。然而,有一个简单的方法可以利用在同一时间两个存储引擎的优势。大多数的MySQL套件包括InnoDB、编译器和链接列表。但如果你选择MyISAM,你仍然可以下载InnoDB独立,并使用它作为一个插件,这是一个非常简单的方式,不是吗

2。计数问题
如果数据表使用的存储引擎支持事务处理(如InnoDB),你不应该使用计数(*)计算数据表中的行数。这是因为产品类数据库使用计数(*)和收益最多的一个近似值,因为总有一些交易流程在给定时间运行。如果count(*)显然是用来产生的错误,这个错误的结果。

三.重复测试查询
最棘手的问题是如何不小心的错误,并导致错误的出现。相反,问题是,在大多数情况下,当错误出现时,应用程序或数据库联机。事实上没有实际的解决问题的办法,除非测试样本上运行的应用程序或数据库,数据库的查询只能通过大量测试几千记录样品确认。

4。避免全表扫描
通常,如果MySQL(或其他关系数据库模型)需要搜索或扫描数据表中的任何特定记录,它将使用全表扫描。此外,通常使用索引表解决全表扫描造成的低效问题的最简单方法。但是,正如我们在下面的问题中看到的,有一个错误的部分。

5。使用解释查询
当你需要调试时,解释是一个很好的命令,说明将在下面进行深入的探讨。
首先,创建一个简单的数据表:
复制代码代码如下所示:
(createtable'awesome_pcq
emp_id'int(10)notnull
默认'0',
full_name'varchar(100)notnull,
email_id'varchar(100)notnull,
password'varchar(50)notnull,
deleted'tinyint(4)notnull,
主键('emp_id)
整理= 'utf8_general_ci)
InnoDB引擎=
row_format =默认

这个数据表一目了然,共有五列,最后一列删除是一个布尔类变量标志检查账号是否是激活或删除。接下来,你需要填写采样记录(例如,100的员工记录)。正如你所看到的,主要的关键是emp_id.therefore,使用电子邮件地址和密码字段,我们可以很容易地创建一个查询来验证或拒绝登录请求,如下(例1):
复制代码代码如下所示:
selectcount(*)fromawesome_pcqwhere
email_id = 'blahblah'andpassword = 'blahblah'anddeleted = 0

我们前面提到过避免使用计数(*):
复制代码代码如下所示:
selectemp_idfromawesome_pcqwhere
email_id = 'blahblah'andpassword = 'blahblah'anddeleted = 0

现在回想一下,实例,代码查询所返回的email_id和密码等于给定值的行数。2的情况下,相同的查询执行,不同的是明确要求列出emp_id满足给定的标准值,查询更耗时。
显然,这两个实例是同样耗时的数据库查询,因为无意中,所有的两个实例查询都在整个表中进行了扫描:
复制代码代码如下所示:
explainselectemp_idfromawesome_pcqwhere
email_id = 'blahblah'andpassword = 'blahblah'anddeleted = 0

在输出端,它是集中在倒数第二列:行。假设我们填补了表100的记录,它将显示100在第一行,这是MySQL需要扫描计算查询结果的行数。这说明什么,这需要全表扫描。为了克服这一缺点,你需要添加一个索引。

6。添加索引
首先,为可能遇到的每个次要问题创建索引是不明智的。过多的索引会导致性能和资源利用率下降:
复制代码代码如下所示:
altertable'awesome_pcq'addindex'loginvalidate('email_id)

接下来,再次运行查询:
复制代码代码如下所示:
explainselectemp_idfromawesome_pcqwhere
email_id = 'blahblah'andpassword = 'blahblah'anddeleted = 0

请注意手术后的价值。不是100,而是1。因此,为了给查询的结果,MySQL扫描只有1条线,由于指数先前创建的。你可能会注意到,指数只有在电子邮件地址字段创建和查询也在寻找其他领域。这表明MySQL首先执行交叉检查该值是否定义WHERE子句中的索引,而如果采用这样一种价值,进行相应的操作。

然而,它不重复每次都将减少到一个。例如,如果不是唯一的索引字段(如员工姓名列可以有两行相同的值),即使是创建的索引,将有一批记录离开。但它仍然比所有表扫描,以便在列指定WHERE子句中不在这个过程中发挥的作用。例如,如果该字段的顺序是在上述查询改变,电子邮件地址出现在年底,和MySQL仍然会被遍历索引列的基础。然后,你应该盲目的指数,并注意如何避免大量的全表扫描,得到更好的结果。但是,这需要一个漫长的过程。

相关文章

PHP三元素运算符的组合介绍

PHP三元素运算符的组合介绍

元素,组合,运算符,电脑软件,PHP,看一个三元的计算公式: 复制代码代码如下所示: $ = 1;$ = 2;$ = 3;$ d = 4; echo $ > 在一般情况下,上述代码的逻辑是基于其他语言的规则(如C或java)。 复制代码代码如下所示: 一个真正的'xx美元= = = > >结束 …

Windows计算机如何启动新文件夹

Windows计算机如何启动新文件夹

启动,电脑软件,Windows,注释:建立一个自己的文件夹,这样所有的文件都在同一个地方,所以不容易弄乱。找到它也很方便。在本文中,我们将运行一个练习来学习如何创建一个新文件夹。 在电脑里一般建一个自己的文件夹,让自己的文件都在里面,不容易弄乱…

对ora-00947深入分析:没有足够的价

对ora-00947深入分析:没有足够的价

价值,没有足够,电脑软件,ora,ora-00947:没有足够的价值 执行插入时发生此错误。 插入表1值(1232423,12); 表1的结构有4列,显然只有三个值被插入,所以这个问题会发生。 在添加列的值之后,好吗。 如果您只想插入三个值, 插入表1(A,B,C)的值(1232423,…

的bpc.exe过程是什么文件

的bpc.exe过程是什么文件

文件,过程,电脑软件,bpc,exe,评论:什么file.bpc.exe过程是对bpc.exe工艺简介 进程文件:原料药或bpc.exe 进程名称:RVP 过程类别:系统过程 英文描述: bpc.exe间谍我过程中常见的应用如Grokster。 中文参考: bpc.exe是Grokster间谍家族的一部分。…

如何安装和使用工具来分享下win7

如何安装和使用工具来分享下win7

分享,工具,安装,电脑软件,点评:AutoCAD2006不能正确安装。许多人都遇到过这个问题。本文安排了一些安装经验。我在这里与大家分享,希望能帮助你们。 该工具不能通常安装在windows7系统的问题,我们可以与你分享我们的经验。当然,朋友们利用Auto…

软件错误kamdcontainercreationfai

软件错误kamdcontainercreationfai

解决方案,软件错误,电脑软件,kamdcontainercreationfailederror,问题: 在iPhone上的应用程序的安装错误指示kamdcontainercreationfailederror (如图1) 图1 答案uff1a iPhone应用程序有上述错误,因为在移动路径下的应用程序文件夹所有权已经…

如何Solaris安装FAT32

如何Solaris安装FAT32

安装,电脑软件,Solaris,点评:如何安装和永久性安装的Windows FAT32分区在solaris9 x86 暂时装入shell命令; MOUT ndash;F / / DSK开发光纤/ c1d0p0:C / mnt / C mountnb 如何安装和永久性安装的Windows FAT32分区在solaris9 x86 暂时装入shell…

WPS使用中常见故障的排除

WPS使用中常见故障的排除

常见故障,电脑软件,WPS,造成这种现象的原因一般有以下2点: 1.dos占用常规内存,使它不可能为WSP的正常运行,打印机维修培训 处理方法:将以下两条命令放入系统配置文件(配置文件)中,确保文件在C盘的根目录中。然后重新引导或加热。Linux故障 装置= C…

Solaris系统查看系统中CPU的数量。

Solaris系统查看系统中CPU的数量。

系统,数量,电脑软件,Solaris,CPU,点评:uff1a 你可以用psrinfo查看(1M)。由于多核/多线程技术的广泛应用,物理CPU的数量可以用VP参数检测,例如: psrinfo VP 物理处理器虚拟处理器(0~31)32 ultrasparc-t1(CPUID 0时钟1000 MHz) ultrasparc-t1 CPU共有8…

config.exe的过程是怎样的配置过程

config.exe的过程是怎样的配置过程

配置,是一个,是怎样,过程,程序,点评:config.exe是Windows访问(WAC)服务相关程序 进程文件:配置或config.exe 过程名称:配置实用程序 过程类别:安全风险的过程 英文描述: config.exe是过程与Windows访问相关(WAC)服务器。它,WAC,T 中文参考: config.ex…

计算机无法打开网页来解决以下问题

计算机无法打开网页来解决以下问题

打开网页,电脑软件,解决办法:单程。修复:1。:为Windows XP服务包2如果你有IE修复失败,不妨尝试运行命令:% progrramfiles % Internet Explorer iexplore exe / rereg (双引号不小),它可以帮助你所有的IE组件重新注册,帮你修复IE完全瘫痪,但不适用于其…

的过程,是一个ltcm000c.exe查询ltcm

的过程,是一个ltcm000c.exe查询ltcm

查询,是一个,过程,电脑软件,ltcm000c,点评:ltcm000c.exe是Xircom和朗讯公司的调制解调器的相关程序 进程文件:ltcm000c或ltcm000c.exe 进程名称:捷讯ltcm000c 过程类别:安全风险的过程 英文描述: ltcm000c.exe过程是被安装的驱动程序,,也被称为…