总结阿里专家mysql讲解笔记

文章目录

  • 观点

观点

  1. 数据库mysql底层是由B+树构成,是平衡树
  2. 树高=主键+所有列长度(主键在分支节点上 16kb,所以varchar 20 就满了,所以varchar作为主键类型是不妥的)
  3. 其次树高决定数据查询的快慢,所以说尽量树高比较矮会好些总结阿里专家mysql讲解笔记_第1张图片
  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类型,这个只使用等值的情况,如果大于小于等等不能用到的。

你可能感兴趣的:(总结阿里专家mysql讲解笔记)