对MySQL整体优化的理解

一、其实对于MySQL优化在初期需求分析和表设计的时候就已经开始了,首先要保证单条数据大小的控制,因为MySQL底层是16kb大小的内存页,如果单条数据大小是16kb,那么一个内存页就只能保存一条数据,这基本是白费劲,如果单条数据大小是1kb,那一个内存页可以存储16个数据,为什么要提到内存页呢,因为一个内存页也就是我们所说的一次IO,一次IO读取一个内存页。那么如何保证单条数据量的大小呢,比如我们要存储一个UUID,这个UUID是32位的,此时我们就要把它定死为32位,如果需要容错,可以扩展到33、34位,但一定不要浪费MySQL的存储空间,因为存储空间一旦大了,就会影响整个B+树的高矮胖瘦,因为B+树是高扇出性,B+树的所有节点,都是16kb大小的内存页,可以做一个简单的计算,比如B+树的根节点是16kb,那么它就会存储一个指针,指向第二层,每个指针都是16kb大小,第二层就有1170个左右的16kb大小的向下指针,第三层就有1170平方个16kb大小的内存页,再乘以16,也就是大概可以存储2000万条数据,如果单条数据是16kb,整个B+树也就能存储2000万除以16条数据,也没多少,所以开始的时候就要保证单条数据量的大小,比如性别字段中男、女,就可以用1和0去标志,第一可以提高检索效率,第二就是可以控制数据量的大小,这样可以保证同样高度的B+树可以存储最多的数据,三层B+树索引基本就是三次IO。

二、当表设计完了,开始增删改查了,我们就要对表的索引进行设计了,那怎么去设计索引是需要根据业务需求去进行的&#

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

GH无霸哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值