|
|
51CTO旗下网站
|
|
移动端

快速提高MySQL性能的10大“杀手锏”

伴随着应用的频繁使用,软件也变得越来越慢,可能是内存的问题,可能是软件设计的问题的,但是你有没有想过,你天天操作的数据库也会拖累你的应用程序呢?

作者:老王谈运维来源:今日头条|2019-04-22 08:07

伴随着应用的频繁使用,软件也变得越来越慢,可能是内存的问题,可能是软件设计的问题的,但是你有没有想过,你天天操作的数据库也会拖累你的应用程序呢?

下面就教你十招,搞定数据库性能,让你的应用飞起来。让小编带你来一一见识它们的独特之处。

杀手锏1: 设置一定时间后优化重建数据库

MySQL check –o –all –database 会让ibdata1不断的增大,因此真正的优化只能是重建数据库表结构。

快速提高MySQL性能的 ——10大“杀手锏”

杀手锏2 :减少磁盘写入的操作

  • 准备足够大的写入缓存 innodb_log_file_size,这个语句和写磁盘操作有密切的联系
  • 避免双写入缓冲

杀手锏3 :提高磁盘读写效率

RAID0 在使用名为EC2虚拟磁盘时,使用RAIDO 可以极大的提高磁盘的读写效率

杀手锏4 :多使用UNION INDEX 来代替UNION

我们知道使用索引能够有效的减少数据库中的数据量来提高查询效率,因为索引可以直接寻找目标对象,不需要全部检索一遍数据库的。

举个例子吧:数据库索引 就如同在图书管理寻找你所要找的图书,查询系统之后我们能够知道那本本在哪个区域,在那个货架,那样就可以快速的找到我们所想要的图书。不需要在偌大的图书馆里一本一本的寻找,数据库索引就是这样相同的道理。

索引代码:

使用索引在数据库中查询用户的 账号和密码:

杀手锏5 :将数据库保存在内存磁盘中

随着硬盘技术的提高,很多人都会将数据库存放在固态磁盘(SSD)中,尽管当前的固态磁盘比移动硬盘快的多,但是它仍然不能与电脑的内存(RAM)相比,毕竟数据从系统内存中读取要比其他一切存储都要快,建议使用内存磁盘。

随着现在电脑设备技术的前进,你不在需要将所有的数据库都存入内存中,就可以获取内存中大部分性能优势,你只需要将经常使用到的数据存入内存中即可。

快速提高MySQL性能的 ——10大“杀手锏”

在上面的图表中,您可以看到高达每秒2,000个I/O操作,可以看出来将频繁使用的数据存入到内存中很适合。

杀手锏6:充分利用日志查询

将所有的查询记录,使用ORM系统或者生成查询语句系统比较有效。

切记,请不要在生成环境使用,不然你的磁盘空间会被占满的。

执行1s的查询:

杀手锏7:用NOSQL的方式来使用MySQL

使用HnadleSocket跳过MySQL的SQL解析层,使得MySQL 变为真正的NLSQL.

杀手锏8:使用JOIN (连接)来替代子查询

MySQL 4.1 之后开始支持子查询,即可以使用select 来创建一个单列的查询结果,然后将这个查询结果作为条件在另一个查询中使用。举个例子:我们现在需要在系统中,将没有任何订单的客户从系统中删除,此时我们可以使用子查询,先从销售单 表中将所有有订单的客户ID取出,然后将ID 传递给主查询。

接下里我们找出没有订单的客户ID,进一步优化。

我们知道使用子查询可以一次性就完成,原本需要很多步骤才能够完成的SQL操作,同时还可以避免表锁死,同时操作简单。

含有join的连接来代替子连接,查询速度会变得更快,原因是:MySQL不需要在内存中再创建临时表来完成这个主查询和子查询这两个步骤,自然而然使用JOIN 连接就变得很快了。

杀手锏9:尽量使用”=”而不用”> ”或者”<”

“=” 扩大了索引的范围

杀手锏10:不要总是使用 “SELECT *”

在正常情况下,使用索引是可以提高查询速度的。但是当SQL语句使用累赘时,索引将无法发挥它应有的作用。

很显然,虽然下面两个查询返回的结果都是一样的,但是后者的效率要高很多。

下面的语句:

结论:

MySQL的性能优化可能方法很多,但是我例举出来的这10个方法是经常使用到的。如果你有更好的方法,请告诉我。

【编辑推荐】

  1. 1000行MySQL学习笔记,不怕你不会,就怕你不学!
  2. 一次诡异的线上数据库的死锁问题排查过程
  3. 记住:永远不要在MySQL中使用UTF-8
  4. 对于MySQL你必须要了解的锁知识
  5. 一条SQL语句在MySQL中是如何执行的?
【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+澳门新濠天地平台

我的运维日志系统构建之路

我的运维日志系统构建之路

数据驱动运维
共18章 | 我叫于小炳

131人订阅学习

CentOS文件服务的最佳实战

CentOS文件服务的最佳实战

涨薪跳槽必备技能
共15章 | 追风蚂蚁

82人订阅学习

小白网工宝典

小白网工宝典

一次搞定思科华为
共15章 | 思科小牛

316人订阅学习

读 书 +澳门新濠天地平台

C++编程你也行

本书是一本优秀的C++教材,内容包括:基础类型、操作符和简单变量,循环和决策,命名空间和C++标准库,用C++编写函数,行为、序列点和求值...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客

博聚网