-
JavaSAL源码的管理系统-SQL:探究SQL原理及优化
资源介绍
管理系统java
sal源码
SQL原理及优化
SQL原理及优化
本Repo主要是学习
记笔记,写代码,做心得总结
这次MYSQL学习,真的让我明白了,为啥字符串/文件操作/树/链表/排序算法这些基础知识这么重要...
P1&P2&P3&P4
索引是帮助MySQL高效获取数据的排好序的数据结构
索引数据结构:
二叉树
红黑树
Hash表
B-Tree
MySql早期有尝试过二叉树数据结构,但是二叉树在最差的情况下,已经退化成链表了,复杂度直接O(n)
红黑树是二叉平衡树,相对于二叉树更优,但是平衡消耗也会比较大,而且树的高度也会很高...
最后MySql用的是B+树(多路平衡树),为什么呢?因为对于查找来说,控制树的高度对于效率很重要,多点横向结点能存储更多的元素就可以了...
数据库查询:比如上图所示,要查找select
*
from
T
where
T.col
=
20
由于数据表是存储在磁盘上的,所以在对B+树进行查找的时候,首先会进行IO操作,把根节点加载到内存(RAM)中,然后对内存进行查找
接下来会继续进入到第二层左边的结点,再继续到索引20,找到下面的data。
磁盘IO