数据库索引笔记

2020-04-07 20:57:34 +08:00
 scriptB0y

最近读完了 https://use-the-index-luke.com/ 这对开发者来说是一本不错的教材,读起来也非常轻松,在捕蛇者说的节目中也推荐过。我把要点整理了笔记,在这里分享一下。

SQL 写起来就像英语(比 Python 更像)。SQL 只要求你描述你想要的数据,而不要求你关心数据库如何把这些数据库查出来。在这方面,这个语言的抽象很好。但是涉及到性能,这种抽象就不完美了。写 SQL 的人必须了解一些数据库的工作原理才能写出性能比较好的 SQL 语句。

影响数据库性能最关键的因素是数据库的索引,而要建立合适的索引,不是运维或者 DBA 的职责,而是开发者的。因为建立索引需要的最关键的信息是查数据的“路径”,这些信息正好开发是最熟悉的。

这本书就是面向开发的索引教程。不涉及其他数据库的复杂知识。

这一系列的笔记一共 6 篇,第一篇写了基本的原理,后面的内容基本都是基于第一篇的原理的,聪明的人应该可以通过索引的原理推理出来后面的内容,以及那么做的道理。第 2 篇性能和 Join,第 4 篇 sort group,第 5 篇部分查询以及第 6 篇 DML,都很简单,基本上让你实现一个数据库你也会直觉地那么选择。第 3 篇非常有技巧性,不可错过。英语水平足够好可以直接阅读原文,只想看一些可以 take away 的知识的话我觉得我整理的笔记也可以。我删去了我觉得的一些比较啰嗦的解释,如果看不懂的话,可能还是需要回去读原文:)

最后,我也是一遍学习一遍记的,如果有不懂的,或者文中有错误,欢迎留言交流。

2513 次点击
所在节点    程序员
4 条回复
ZiLong
2020-04-07 22:52:12 +08:00
看起来很棒,向楼主学习!
nuistzhou
2020-04-07 23:00:34 +08:00
谢谢推荐这本书
liprais
2020-04-07 23:10:13 +08:00
不会用索引的情况应该改成优化器不会考虑索引
有可能优化器考虑了索引但是没有选的
sourceCoder
2020-04-08 01:08:55 +08:00
我感觉想要真正学习数据库,b'站有一个 up 猪翻译的 CMU 数据库课程比较的好,up 猪是 simviso 强烈推荐给你

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/660228

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX