MySQL性能优化

本文详细介绍了MySQL性能优化的策略,包括索引优化、表结构优化、临时表优化和其他技巧。强调了合理使用索引的重要性,指出索引使用中的常见误区,并提出避免全表扫描的方法。此外,还提到了读写分离、查询优化以及临时表的内存和磁盘管理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、索引优化

1、合理使用索引,在经常查询而不经常增删改操作的字段加索引,一个表上的索引不应该

超过6个。

2、Order by与group by后应直接使用字段,而且字段应该是索引字段。

3、索引字段长度应较短而长度固定。

4、索引字段重复不能过多。

5、Hash索引与BTree索引区别。(MyISAM与InnoDB不支持Hash索引)

(1)、BTree索引使用多路搜索树的数据结构,可以减少定位的中间过程;综合效率较高,默认使用的索引。

(2)、Hash索引使用Hash算法构建索引;精确的等值查询一次定位,效率极高,但特别不适合范围查询;使用Hash的复合索引是把复合索引键共同计算hash值,故不能单独使用。

6、会导致引擎放弃使用索引,改为进行全表的几种情况,都要在开发中尽量避免出现。

(1)、where子句中使用like关键字时,前置百分号会导致索引失效(起始字符不确定都会失效)。如:select id from test where name like “%mike”。
(2)、where子句中使用is null或is not null时,因为null值会被自动从索引中排除,索引一般不会建立在有空值的列上。
(3)、where子句中使用or关键字时,or左右字段如果存在一个没有索引,有索引字段也会失效;而且即使都有索引,因为二者的索引存储顺序并不一致,效率还不如顺序全表扫描,这时引擎有可能放弃使用索引,所

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据大观察

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值