欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

总结阿里专家mysql讲解笔记

程序员文章站 2022-06-22 17:15:47
文章目录观点观点数据库mysql底层是由B+树构成,是平衡树树高=主键+所有列长度(主键在分支节点上 16kb,所以varchar 20 就满了,所以varchar作为主键类型是不妥的)其次树高决定数据查询的快慢,所以说尽量树高比较矮会好些依据上面的树高结论,我们可以知道如果表列很多的话,可以分到多张表,让树高矮一点。分支因子能储存更多的话,越能省内存。所以在设计索引的时候,要注意索引类型设计自增主键避免拆开树,so主键一般是顺序的。主键是为了构造这棵树。这个有个问题:业务尽量不要用主键去关...

文章目录

观点

  1. 数据库mysql底层是由B+树构成,是平衡树
  2. 树高=主键+所有列长度(主键在分支节点上 16kb,所以varchar 20 就满了,所以varchar作为主键类型是不妥的)
  3. 其次树高决定数据查询的快慢,所以说尽量树高比较矮会好些总结阿里专家mysql讲解笔记
  4. 依据上面的树高结论,我们可以知道如果表列很多的话,可以分到多张表,让树高矮一点。
  5. 分支因子能储存更多的话,越能省内存。所以在设计索引的时候,要注意索引类型设计
  6. 自增主键避免拆开树,so主键一般是顺序的。主键是为了构造这棵树。这个有个问题:业务尽量不要用主键去关联,这是为啥?虽然主键查询很快,但是像select * from xx 他就不一定是使用主键去查询的,而是查询最短索引,也就是索引结构更短。
  7. 索引加上查询字段,避免回表,空间换时间。但是这个查询字段不能经常修改,不然也会掰断二叉树的分支节点。
  8. 锁一般加主键和索引上。
  9. 索引可以避免order by进行排序,比如where a = x and b = x and c = x order by c,只有a,b是常量的时候,我们可以不用写order by c如果我们建a,b,c为索引的话。
  10. 索引建立原则:区分度高。像性别这种区分度不高的,会让mysql在查询的时候区别不大。
  11. sql如果有大于等于号,要先写等于号,再写大于号。就一定会用上索引。然后字段经常改的,要放在后面。
  12. 索引不要使用hash类型,这个只使用等值的情况,如果大于小于等等不能用到的。

本文地址:https://blog.csdn.net/weixin_38336658/article/details/107670706