MySQL数据库的性能的如何提升

MYSQL是当前最流行WEB数据库,鉴于MYSQL数据库方便和稳定的特性,是我们在开发各种程序的时候很少提到关于MYSQL的优化问题,即使想到,也只是程序级别方便的,比如,减少过于消耗资源的SQL语句,其实,除此之外,MYSQL数据库其实还有很多可以优化的地方。

接下来OTPUB小编就和大家分享5个提高MYSQL数据库性能的小技巧

MYSQL数据库

MySQL性能提升小技巧1:对你的服务器进行配置

了解服务器是如何支配时间,最好的办法就是对服务器的工作进行配置。通过配置你的服务器,你可以expose最昂贵的query来为将来的调优做准备。从这个角度,时间就是最重要的衡量标准,因为当你对服务器发起一个query之后,你只需要关系他到底多快可以完成就可以了。

配置你的工作文件的最优解就是MySQL Enterprise Monitor的query分析仪或者Percona Toolkit的pt-query-digest。这些工具可以帮助捕捉服务器正在执行的询问以及返回按响应时间递减顺序排序的任务表,它还会持续不断地把最昂贵、费时的任务更新在最上方,这样你就能知道精力应该更加集中在什么地方了。

工作文件配置工具会把相似的询问分在一个组,可以很方便地查看低速运行或者是告诉运行但是多次进行的询问。

MySQL性能提升小技巧2: 深入理解四个基本资源

一个数据库服务器需要以下4种资源才能正常运转:CPU,内存,硬盘以及网络。如果这其中任何一种性能不足,运转不力或者超负荷运转的话,那么数据库和服务器就很容易表现不佳。

理解基础的资源是非常重要是以下两个层面:选择硬件以及疑难问题解答。

为MySQL选择硬件的时候,首先要确保所有的组件都表现良好,并把他们进行合理的配置。

大多是时候,一些企业会选择高转速的CPU以及硬盘,但是有可能会导致内存不太够用。在某些情况下,按照数量级增加内存是提升性能最廉价的办法,尤其是工作负载是绑定磁盘的情况下。这听起来可能违反常识,但是在许多情况下,硬盘都是过度使用的,因为没有足够的内存来储存数据工作集。

另外,在大多数情况下,MySQL使用高转速的CPU会运转得很好,因为每一个询问都是在单线程中运行而不能在CPU之间并行。

当遇到难题需要解决时,首先要了解MYSQL相关资源的性能和使用情况,判断他们是原来性能不足还是因为承载了过多的任务导致。

MySQL性能提升小技巧3:不要把MySQL当成一个队列

队列和队列访问模式可以在你完全没有察觉的情况下偷偷进入你的应用。举个例子,如果你设置了某个项的状态,以便某个特定的工作进程在调用它之前可以使用,那么你就在无意中创建了一个队列。把邮件标记为未发送,发送它们,然后它们被标记为已发送就是一个很好理解的例子。

MySQL性能提升小技巧4:不要太关注配置

DBA常常耗费大量的时间来调整配置。换来的结果有时却是伤害而不是性能的提升。我看到过许多的最优化的服务器时不时就崩溃,内存不足,而且在工作负载稍微多一点的时候就表现很差。

MySQL上搭载的默认配置是一刀切并且严重过时的,但是它们也不需要完全重新配置。只要把最基础的设置正确,有需要的话再做小幅调整即可。在大多数情况下,通过正确设置大约10个选项,你可以获得服务器峰值性能的95%。其他无法应用此方法的的情况的话应该是非常特殊的情况,所以就不用去管他了。

在大多数情况下,服务器“转换”工具是不推荐的,因为它们常常会有一些在特定情况下并不适用的规则。有些甚至存在危险且不准确编码—例如缓存命中率和内存消耗公式。这些都是不对的,而且随这时代的进步他们变得更加地不对。

MySQL性能提升小技:5:学习index的三条法则

Index可能是数据库汇总最难理解的概念,因为很容易就对Index到底如何工作以及服务器如何使用它们感到困惑。确实要花些力气才能真正理解它到底是怎么回事。

Index经过适当设计后,主要在数据库服务器中提供如下三种服务:

Index让服务器查找相邻行的集合而不是单独的行。许多人可能会认为index的作用就是为了查找单独的行,但是查找单独的行会导致混乱的硬盘操作,速度就会变慢。而且查找行的集合要容易多了,所有或者说大多数都比一次只查找一个行要有趣多了。

Index通过按照阅读喜好进行排列省去了整理的过程。

Index完全满足了服务器的询问,根本就不需要再连接表格。这是众所周知的覆盖索引或仅索引查询。

想要了解更多关于数据库的知识请登录OTPUB领先IT学习官网:www.otpub.com

原文地址:https://www.cnblogs.com/otpub/p/7389892.html