前言
学习一门语言到一定程度要做小项目demo的时候,数据库就变成我们无路可绕的点,那么数据库的架构或者说数据库内部究竟有什么,下面是我总结的一些有关数据库的知识点。
(增删查改这些基础的点相信你已经了解了,下面这些是一些进阶内容)
数据库的基础架构图,下面是我百度的图:
从图的标记不难看出,索引管理和锁管理是数据库比较重要的部分,接下来我们也将围绕着这两个方面展开。
索引
接触多了增删查改的我们看到这一概念都会想问,为什么要用索引?
对于储存庞大数据量的数据库,我们肯定是想要快速查询信息,进一步地去想,如何避免每次查询都要全表查询,提高效率性能呢?
那么,什么样的信息能成为索引?
答案是:主键、唯一键以及普通键。
再往底层一点想,索引的数据结构是这样的,下面我们就深究索引的数据结构来谈。
索引的数据结构大概有以下几种:
- 建立二叉查找树进行二分查找(正常的时间复杂度为O(logn));
- 建立B-Tree结构进行查找(正常的时间复杂度为O(logn));
- 建立B±Tree结构进行查找;
- 建立Hash结构进行查找。
二叉查找树一般学数据结构都会涉及到所以这里我们不详细赘述,只谈谈二叉查找树容易出现的问题:
在取节点的时候容易出现树变