美文网首页
简述mysql 中高性能表设计原则与索引

简述mysql 中高性能表设计原则与索引

作者: 链人成长chainerup | 来源:发表于2019-10-06 14:25 被阅读0次

本文将从高性能角度,简单讲解一下MySQL表的设计跟索引。

1 表设计

高性能表设计.png

总体原则是遵循范式设计,但是有时候为了性能,可以采用一些反范式的设计,以空间换时间。

另外,这部分的最后给出了高性能表设计遵循的3个基本原则。

2 索引

2.1 原理

索引是存储引擎用于快速查询记录的一种数据结构。可以加速查询,但是也降低了索引列插入、删除、更新的速度,索引维护需要代价

索引有hash索引、二分查找索引、B+Tree, 在MySQL中,常用的是B+Tree。

B+Tree 能够快速访问数据,是因为存储引擎不再需要全表扫描,而是从索引根节点(通常在内存中)开始进行多分查找,根节点的槽中都存放了指向子节点的指针,存储引擎根据这些指针能够快速遍历数据。
B+Tree的原理 可以参见这篇文章: https://blog.csdn.net/u013235478/article/details/50625677

2.2 分类

索引分类.png

2.3 索引选择的几个参考指标

索引选择的几个指标.png

2.3 排查

排查是否使用了索引,用了什么索引.png

2.4 索引失效

索引失效.png

3 总结

本文讲解了高性能表设计的原则,以及索引相关的知识。索引主要从原理、排查、选择因素、bad case 四个维度进行了简单分析。
文中的脑图是我在梳理过程中制作。

4 参考文献

B+ Tree的原理: https://blog.csdn.net/u013235478/article/details/50625677
拉勾网的《高性能MySQL实战》
使用explain 查看执行计划:https://blog.csdn.net/why15732625998/article/details/80388236

5 其他

本文是mysql学习的第三篇-简述mysql 中高性能表设计原则与索引,希望对你有所帮助~
如果有疑问,可以直接留言,也可以关注公众号 “链人成长chainerup” 提问留言,或者加入知识星球“链人成长” 与我深度链接~

相关文章

网友评论

      本文标题:简述mysql 中高性能表设计原则与索引

      本文链接:https://www.haomeiwen.com/subject/bsuupctx.html