🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 总结 在写本文之前,我就知道这个话题是有多大,需要花费多少时间写一篇有深度的文章。事实证明我还是过于乐观,我花费了比预想多两倍的时间,但是我学到了很多。 如果你想很好学习数据库,我推荐阅读这篇研究论文《[Architecture of a Database System](http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf)》。这是一篇很好的介绍数据库的文章(110 页),适合非计算机专业人事阅读。这篇文章对编写本文计划给我很大帮助。它并没有像我的文章一样关注数据结构和算法,而是给出很多架构概念。 如果你仔细阅读本文,你应该知道数据库的强大之处。由于这是一篇很长的文章,我来提醒一下你阅读过什么: * B+ 树索引的概览 * 数据库全局概览 * 基于成本的优化的概览,尤其关注于连接运算 * 缓冲池管理概览 * 事务管理概览 但是数据库要聪明得多。例如,我没有碰触下面的问题: * 如何管理集群式数据库和全局事务 * 如何在数据库运行时对其创建快照 * 如何有效存储(包括压缩)数据 * 如何管理内存 所以,当你需要在充满 bug 的 NoSQL 数据库和像石头一样坚固的关系数据库之间选择时,我奉劝你要多多思考。不要将我的意思理解错了,某些 NoSQL 数据库非常棒,但是它们还年轻,只能处理某些应用的特定问题。 总结一下,如果以后有人问你,数据库是怎么工作的,我希望你不是像下面一样回答这个问题: [![魔法](http://files.devbean.net/images/2016/04/magic_low2.gif)](http://files.devbean.net/images/2016/04/magic_low2.gif) 否则的话,你可以把这篇文章甩到他脸上。