关于mysql的一些优化建议

概述

在使用mysql的过程中积累了一定的Sql优化 经验,比如尽量不要使用Select *、尽量使用索引等,但背后的原因是什么呢?下面对一些常见的优化建议背后的原理进行一个分析。

1、为什么尽量不要使用Select *?

  • 磁盘IO,mysql的数据是存放在磁盘中,查询的字段越多,和磁盘交互的次数就越大,增大了磁盘IO
  • 内存,查询结果需要加载到内存中,字段越多占用的内存越高
  • 网络传输/带宽,数据传输量越大占用的网络资源就越多
  • 无法高效利用索引,不能使用索引覆盖(不太可能针对所有的字段建立索引),需要进行回表查询,无法充分利用索引的优化。

为什么不用Select *

2、为什么使用联合索引?

  • 减少开销,建立一个联合索引相当于建立了多个索引。实际中每多一个索引都会增加写操作和磁盘空间的开销,联合索引可降低开销
  • 覆盖索引,当返回的字段是联合索引的字段时,可通过索引覆盖进行优化,不用再做回表操作,提高了性能
  • 效率高,索引列多,通过索引列筛选出的数据越少。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值