mysql 调优详解_[打造高性能MySQL]_MySQL性能优化_详解 - 树懒学堂

MySQL性能优化对许多数据库从业人员来讲,是一个十分繁杂的难题,而大部分原因在于对数据库出错的细节和解决的思路不够清晰。因此,在MySQL性能优化前,先要掌握的便是MySQL的内部逻辑,许多的性能优化事实上便是遵照规范让MySQL的优化器可以依照预期的有效方式来运作。

一、MySQL性能优化的过程

利用慢查询,定位查询時间较长的SQL句子。

利用 explain 指令观察优化不足的SQL执行计划。

利用 showprofile[s] 观察SQL的性能消耗状况。

二、MySQL数据库性能优化技术

一般来说,要确保数据库维持在高效状态,要在这几个方面集中注意力:

数据库结构设计优化

sql语句优化

数据库参数配置

适当的硬件资源和操作系统

三、MySQL性能优化——索引优化

46f07d3fbc7eeeb3fa9b46d8c08549da.png

1.遵循最左前缀原则

利用联合索引开展查询时,从索引的最左前列开始,不绕过索引中的列而且不要用范围查询(>、

2.模糊查询时不要使用索引(like ‘%XX’ 或是 like ‘%XX%’)

假如要用类似 where column like ‘%AB’ 条件时,因为标准前边是模糊不清的,因此不可以运用索引,只能逐一查询,判断是否符合条件,于是便会造成全索引扫描或是全表扫描。

而像 where column like ‘A%’ ,就可以检索A开始的数据,当遇到B开始的数据信息时,就停止向下检索,这样就能够提升查询高效率。

3.尽量拓展索引

过多的索引会占有大量的室内空间,并且每一次增、删、改实际操作都是复建索引。

加入已经有索引(a),如今又要对(a,b)开展索引,那麼只必须改动索引(a)就可以,防止多余的索引带来数据冗余。

4.索引不参与实际操作

不要对索引列进行操作,包含计算、函数、数据转化等,这些操作都会造成索引无效。

5.添加索引的注意事项

频繁作为查询条件的字段;

唯一性很差的字段上不宜创建索引;

经常更新的字段上不宜创建索引;

四、MySQL性能优化——sql语句优化

通过limit对查询结果数目开展限制;

不要使用select*,只需将必要的字段查询出来

利用连接(join)来替代子查询;

拆开复杂的delete或insert句子;

不做列计算:比如 SELECT id WHERE age+1=10,一切对列的实际操作都将造成全表扫描,查询时要尽量将实际操作挪到等号右侧;

sql语句尽量简易:一条sql在一个cpu中计算;将复杂sql语句进行拆分,可以降低锁時间,防止整个数据库被锁;

OR变成IN:OR的查询是n级別,IN的查询效率是log(n)级別;

比较时尽量选择相同数据类型:例如用’123’和’123’比,123和123比;

尽量减少在WHERE子句中应用!=或<>操作符;

列表数据不拿全表:先通过 LIMIT 进行分页,注意控制页大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值