V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
scriptB0y
V2EX  ›  程序员

数据库索引笔记

  •  1
     
  •   scriptB0y ·
    laixintao · 2020-04-07 20:57:34 +08:00 · 2465 次点击
    这是一个创建于 1451 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    4 条回复    2020-04-08 01:08:55 +08:00
    ZiLong
        1
    ZiLong  
       2020-04-07 22:52:12 +08:00
    看起来很棒,向楼主学习!
    nuistzhou
        2
    nuistzhou  
       2020-04-07 23:00:34 +08:00 via iPhone
    谢谢推荐这本书
    liprais
        3
    liprais  
       2020-04-07 23:10:13 +08:00
    不会用索引的情况应该改成优化器不会考虑索引
    有可能优化器考虑了索引但是没有选的
    sourceCoder
        4
    sourceCoder  
       2020-04-08 01:08:55 +08:00   ❤️ 1
    我感觉想要真正学习数据库,b'站有一个 up 猪翻译的 CMU 数据库课程比较的好,up 猪是 simviso 强烈推荐给你
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   956 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 21:42 · PVG 05:42 · LAX 14:42 · JFK 17:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.