【mysql】高性能mysql第三版(阅读收获)- 01

引言

解答了一些自己现阶段一些疑惑,比如mysql如果优化,这个索引为啥能这么快呢,为什么加索引后数据的更新和插入会变慢呢。

查询执行流程

在这里插入图片描述

  • 查询缓存

1、缓存中存储着那些数据?请求结束时,会清除缓存。(只当一个了解)
2、查询缓存诠释。
在这里插入图片描述

索引(innoDB)

  • 数据结构

索引使用“Btree(平衡多路查找树)”,单个节点是由 “索引值(索引值1,索引值2…)+数据”构成。索引值可以知道当前节点的数据和下个节点,这样可以理解为每个索引都是一颗树。

  • 缺点

1、占用空间多。比如,一个索引对应一个10B的索引值,一页容量是1000B,数据项大小为10B,那么一页可以存储1000/(10+10)= 50个 节点;那么有9个索引,可以存储1000/(10*9+10)=10个节点。
2、插入或更新数据时会速度会变慢。根据“BTree”的特性,每次插入或更新时,需要达到每棵树的平衡,需要对树进行旋转操作(重新计算索引值)。

优化慢查询

结合之前所看帖的经验,总结一点就是尽量使索引有效(因为一些业务需求+表结构的问题,使索引失效了)。那我们所需要做的就是如何避免索引失效、查询时尽量使用索引、拆分联表查询。以下运算会使索引失效。

  • not in 会使索引失效。
  • 范围查找会使索引失效(大于、小于、大于等于、小于等于、between and ,!= )。
  • or

小记

这本书呢,从很多角度方面去优化msql的性能,从数据类型、索引、缓存、服务器配置信息等方面,分得很细,这次大致看到了第8章,很多时候就只是看了,看得过程比较枯燥,对于自己现在来说是用不上,就看不下去了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值