MySQL高级性能优化——5、优化分析

优化分析

SQL性能下降的表现

  1. 执行时间长
  2. 等待时间长

SQL性能下降的原因

  1. 查询语句写的不好:各种连接以及子查询,导致没用上索引或者就没有建立索引。
  2. 建立的索引失效:建立了索引,在真正执行的时候,索引失效了导致没用上索引。
  3. 关联查询使用了太多的Join。
  4. 服务器优化和参数配置不合适:如果设置的不合理,比例不恰当也会导致性能下降,SQL变慢。

索引

什么是索引
索引是一个帮助MySQL高效获取数据的一种数据结构,类似字典的索引目录可以通过索引快速的查找到排好序的数据。

为什么要建立索引
为了提高查询数据的效率

建立索引的优势

  1. 提高了数据检索的效率,降低了数据库IO的开销
  2. 通过索引对数据进行排序,降低了排序的成本,降低了CPU的消耗

建立索引的劣势

  1. 索引是以文件的形式存储在磁盘中。会占用空间。
  2. 索引也是一张表,该表保存了主键与索引字段并指向实体表的记录。所以也占空间。
  3. 更新表时,MYSQL不仅要保存数据,还要对索引文件进行保存,每次更新添加了索引的字段就会导致性能下降。
  4. 索引提高了查询速度但是降低了更新速度。
  5. 会调整因为更新带来的键值变化后索引的信息。

索引尽量加在经常用来查询的字段上,避免加在那些常常发生变化的字段上。

索引的分类

  1. 单值索引:一个索引只包含单个列,一个表可以有多个单值索引。
  2. 唯一索引:索引列的值必须唯一,但是可以有空值
  3. 复合索引:一个索引包含多个列
  4. 全文索引:MYSQL全文检索是利用查询关键字和查询列内容的相关度进行检索,可以利用全文检索列来提高匹配的速度。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

地心美少女

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

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

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

打赏作者

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

抵扣说明:

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

余额充值