├── README.md └── paper-note-docs └── README.md /README.md: -------------------------------------------------------------------------------- 1 |

📔 Database Kernel develop RoadMap

2 | 3 | Author is a database amateur, so the content is not authoritative, welcome to point out my error. 4 | 5 | Since the database course is recommended, only good articles, papers or blogs are listed starting from part 3. 6 | ## List of Knowledge 7 | - [List of Knowledge](#list-of-knowledge) 8 | - [1. Description](#1-description) 9 | - [2. Recommended Basic Course and Books](#2-recommended-basic-course-and-books) 10 | - [Pre-Skill](#pre-skill) 11 | - [2.1 Computer Organization and Design](#21-computer-organization-and-design) 12 | - [2.1.1 Courses](#211-courses) 13 | - [2.1.2 Books](#212-books) 14 | - [2.2 Computer Operating System](#22-computer-operating-system) 15 | - [2.2.1 Courses](#221-courses) 16 | - [2.2.2 Books](#222-books) 17 | - [2.3 Computer Network](#23-computer-network) 18 | - [2.3.1 Courses](#231-courses) 19 | - [2.3.2 Books](#232-books) 20 | - [2.4 Data Structure and Algorithmn](#24-data-structure-and-algorithmn) 21 | - [2.4.1 Courses](#241-courses) 22 | - [2.4.2 Books](#242-books) 23 | - [2.5 Algorithms Design and Analysis](#25-algorithms-design-and-analysis) 24 | - [2.5.1 Courses](#251-courses) 25 | - [2.5.2 Books](#252-books) 26 | - [2.6 Database](#26-database) 27 | - [2.6.1 Course](#261-course) 28 | - [2.6.2 Books](#262-books) 29 | - [2.6.3 Papers](#263-papers) 30 | - [2.7 Distributed System](#27-distributed-system) 31 | - [2.7.1 Courses](#271-courses) 32 | - [2.7.2 Books](#272-books) 33 | - [2.7.3 Papers](#273-papers) 34 | - [2.7.4 Blogs](#274-blogs) 35 | - [3. SQL \& Relational Algebra](#3-sql--relational-algebra) 36 | - [4. DDL \& DML](#4-ddl--dml) 37 | - [5. Relational Model](#5-relational-model) 38 | - [6. Storage management](#6-storage-management) 39 | - [6.1 Buffer Pool](#61-buffer-pool) 40 | - [6.2 Index](#62-index) 41 | - [6.3 B+Tree](#63-btree) 42 | - [6.4 B-Tree](#64-b-tree) 43 | - [6.5 Hash table](#65-hash-table) 44 | - [6.6 LSM-Tree](#66-lsm-tree) 45 | - [6.7 Bw-Tree](#67-bw-tree) 46 | - [6.8 Storage engine](#68-storage-engine) 47 | - [7. Query Processing](#7-query-processing) 48 | - [8. SQL Parser](#8-sql-parser) 49 | - [8.1 Syntax Check](#81-syntax-check) 50 | - [8.2 Semantic Check](#82-semantic-check) 51 | - [8.3 Shared Pool Check](#83-shared-pool-check) 52 | - [8.4 Actions](#84-actions) 53 | - [9. SQL Executor](#9-sql-executor) 54 | - [9. SQL Optimization](#9-sql-optimization) 55 | - [9.1 SQL Query Optimization](#91-sql-query-optimization) 56 | - [9.2 Indexes Optimization](#92-indexes-optimization) 57 | - [9.3 Table Optimization](#93-table-optimization) 58 | - [9.4 Buffer Cache Optimization](#94-buffer-cache-optimization) 59 | - [9.5 Storage Optimization](#95-storage-optimization) 60 | - [9.7 table Structure Optimization](#97-table-structure-optimization) 61 | - [9.7.1 data reduction](#971-data-reduction) 62 | - [9.7.2 data partition](#972-data--partition) 63 | - [9.8 Optimizer](#98-optimizer) 64 | - [9.9 SQL调优博客List](#99-sql调优博客list) 65 | - [10. Transaction management](#10-transaction-management) 66 | - [Lock manager](#lock-manager) 67 | - [11. Network](#11-network) 68 | - [12. Serialization](#12-serialization) 69 | - [13. Concurrency Control](#13-concurrency-control) 70 | - [14. Crash Recovery management](#14-crash-recovery-management) 71 | - [15. NoSQL](#15-nosql) 72 | - [16. NewSQL](#16-newsql) 73 | - [17. Distributed \& Paralleled](#17-distributed--paralleled) 74 | - [15. OLAP、OLTP、HTAP](#15-olapoltphtap) 75 | - [15.1 OLAP](#151-olap) 76 | - [15.2 OLTP](#152-oltp) 77 | - [15.3 HTAP](#153-htap) 78 | - [15.4 HSAP](#154-hsap) 79 | - [16. Graph Database](#16-graph-database) 80 | - [16.1 Courses](#161-courses) 81 | - [16.2 Books](#162-books) 82 | - [16.3 Papers](#163-papers) 83 | - [16.4 Blogs](#164-blogs) 84 | - [16. Project Source Code Analysis](#16-project-source-code-analysis) 85 | - [17. Mini-Project Labs](#17-mini-project-labs) 86 | - [18. AI4DB and DB4AI (frontier tech)](#18-ai4db-and-db4ai-frontier-tech) 87 | - [Database Retrospective](#database-retrospective) 88 | 89 | 90 | ## 1. Description 91 | This repo will not include knowledge about basic programming language. it mainly focus on direction of database kernal development. 92 | 93 | The tutorial will include content: 94 | - Courses 95 | - Blogs 96 | - Papers 97 | - Activities 98 | - Talks 99 | 100 | Ok, The repo include two language content: 101 | - English Content 102 | - Chinese Content. 103 | 104 | If you have any good materials, welcome to submit a pull request for this repo. 105 | 106 | Finally, I would like to thank the professor who provided the Course resource, papper resource Etc. Also thanks the blogger who provided the study notes. Thanks to all content resource providers. 107 | 108 | 109 | ## 2. Recommended Basic Course and Books 110 | I will not update course notes and labs. 111 | ### Pre-Skill 112 | - MIT [The Missing Semester of Your CS Education](https://missing.csail.mit.edu/) 113 | - C/C++ 114 | - Go 115 | - Rust 116 | 117 | You only need to know a programming language. 118 | 119 | ### 2.1 Computer Organization and Design 120 | 121 | #### 2.1.1 Courses 122 | 123 | |University|ID|Name|Time|Comment| 124 | |:--:|:--:|--|--|--| 125 | |CMU|15-213/14-513/15-513|[Intro to Computer Systems(ICS)](https://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/schedule.html)|Fall 2015|CS:APP3e| 126 | |UC Berkeley|CS61C|[Great Ideas in Computer Architecture (Machine Structures)](https://www-inst.eecs.berkeley.edu//~cs61c/sp17/#resources)|Spring 2017|N/A| 127 | |UC Berkeley|CS 152/252A|[Computer Architecture and Engineering](https://inst.eecs.berkeley.edu/~cs152/sp22/)|Spring 2022|N/A| 128 | |N/A|N/A|Crash Course Computer Science||[bilibili地址](https://www.bilibili.com/video/BV1EW411u7th?p=1)| 129 | 130 | 131 | #### 2.1.2 Books 132 | - Reference Course Resources 133 | 134 | ### 2.2 Computer Operating System 135 | 136 | #### 2.2.1 Courses 137 | 138 | |University|ID|Name|Time|Comment| 139 | |:--:|:--:|--|--|--| 140 | |Stanford|CS110|[Principles of Computer Systems](http://web.stanford.edu/class/cs110/)|Winter 2022|| 141 | |MIT|6.828|[Operating System Engineering](https://pdos.csail.mit.edu/6.828/2018/schedule.html)|Fall 2018|| 142 | |UC Berkeley|CS162|[Operating Systems and System Programming](https://inst.eecs.berkeley.edu/~cs162/fa20/)|Fall 2020|| 143 | |MIT|6.033|http://web.mit.edu/6.033/www/index.shtml|N/A|covers four units of technical content: operating systems, networking, distributed systems, and security|| 144 | 145 | 146 | #### 2.2.2 Books 147 | - Reference Course Resources 148 | ### 2.3 Computer Network 149 | #### 2.3.1 Courses 150 | 151 | |University|ID|Name|Time|Comment| 152 | |:--:|:--:|--|--|--| 153 | |Stanford|CS144|[Introduction to Computer Networking](https://cs144.github.io/)|Fall 2021|| 154 | |CMU|CS 15-744|[Computer Networks](https://www.cs.cmu.edu/~srini/15-744/S18/www/syllabus.html)|Spring 2018|| 155 | |中科大USTC|N/A|[计算机网络](https://www.bilibili.com/video/BV1JV411t7ow?p=1)|N/A|undergraduate stage| 156 | |中科大USTC|N/A|[高级计算机网络](https://www.bilibili.com/video/BV1BL4y1J7vh?p=1)|N/A|postgraduate stage| 157 | 158 | 159 | #### 2.3.2 Books 160 | - Reference Course Resources 161 | 162 | ### 2.4 Data Structure and Algorithmn 163 | 164 | #### 2.4.1 Courses 165 | |University|ID|Name|Time|Comment| 166 | |:--:|:--:|--|--|--| 167 | |UC Berkeley|CS 61B|[Data Structures](http://fa20.datastructur.es/)|Fall 2020|| 168 | |CMU|CS 15-122|[Principles of Imperative Computation](http://www.cs.cmu.edu/~15122/schedule.shtml)|Spring 2023|Past Courses Page 404| 169 | |CMU|CS 15-121|[Introduction Data Structures](http://www.cs.cmu.edu/~mjs/121/lectures.html)|Spring 2018|| 170 | 171 | 172 | 173 | #### 2.4.2 Books 174 | - Reference Course Resources 175 | 176 | ### 2.5 Algorithms Design and Analysis 177 | 178 | #### 2.5.1 Courses 179 | |University|ID|Name|Time|Comment| 180 | |:--:|:--:|--|--|--| 181 | |UC Berkeley|UC Berkeley|[Efficient Algorithms and Intractable Problems](https://cs170.org/)||| 182 | |MIT|6.006|[Introduction to Algorithms](https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/pages/calendar/)|Spring 2020|Introduction to Algorithmns| 183 | |CMU|CS 15-451/651|[Algorithm Design and Analysis](http://www.cs.cmu.edu/~15451-f21/schedule.html)|Fall 2021|| 184 | |CMU|CS 15-850|[Advanced Algorithms](http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15850-f20/www/)|Fall 2020|| 185 | 186 | #### 2.5.2 Books 187 | - Reference Course Resources 188 | 189 | ### 2.6 Database 190 | 191 | #### 2.6.1 Course 192 | 193 | |University|ID|Name|Time|Comment| 194 | |:--:|:--:|--|--|--| 195 | |CMU|CS 15-445/645|[Database Systems](https://15445.courses.cs.cmu.edu/fall2022/)|Fall 2022|Instructor: [Andy Pavlo](https://www.cs.cmu.edu/~pavlo/)| 196 | |UC Berkeley|CS 186|[Introduction to Database Systems](https://cs186berkeley.net/sp22/)|Spring 2022|| 197 | |Pennsylvania|CMPSC 431W|[Database Management Systems](http://yusanlin.com/cmpsc431w/lectures.html)|Fall 2015|| 198 | |Stanford|CS346|[Database System Implementation](https://web.stanford.edu/class/cs346/2015/)|Spring 2015|| 199 | |uwaterloo|CS 448/648|[Database Systems Implementation](https://cs.uwaterloo.ca/~david/cs448/lectures.html)|Winter 2009|| 200 | |CMU|CS 15-721|[Advanced Database Systems](https://15721.courses.cs.cmu.edu/spring2020/schedule.html)|Spring 2020|Instructor: [Andy Pavlo](https://www.cs.cmu.edu/~pavlo/)| 201 | |CMU|CS 15-799|[Special Topics: Self-Driving Database Management Systems](https://15799.courses.cs.cmu.edu/spring2022/schedule.html)|Spring 2022|Instructor: [Andy Pavlo](https://www.cs.cmu.edu/~pavlo/)|| 202 | |uwaterloo|CS 856|[Distributed data management fundamentals (architectures, data placement, query optimization)](https://cs.uwaterloo.ca/~tozsu/courses/cs856/F02/lecture-1.pdf)
[Distributed transaction processing, concurrency control, recovery, interoperability](https://cs.uwaterloo.ca/~tozsu/courses/cs856/F02/lecture-2.pdf)|Fall 2002|Only need these two slides, nothing else| 203 | |N/A|N/A|[Let's Build a Simple Database: Writing a sqlite clone from scratch in C](https://cstack.github.io/db_tutorial/)||Thanks to cstack| 204 | |Stanford|CS 345|[Topics in Database Management Systems](https://cs.stanford.edu/people/chrismre/cs345/)|Winter 2014|Paper Readings topic, similar to CMU CS15-721| 205 | 206 | 207 | #### 2.6.2 Books 208 | - [fundamentals of database systems 7th edition solutions](https://amirsmvt.github.io/Database/Static_files/Fundamental_of_Database_Systems.pdf), by Ramez Elmasri, Shamkant B. Navathe 209 | 210 | - [Database System Concepts Seventh Edition](https://www.db-book.com/), by Silberschatz, Korth and Sudarshan 中文版:《数据库系统概念》 211 | 212 | - [Database Management Systems](https://pages.cs.wisc.edu/~dbbook/), by Ramakrishnan and Gehrke 中文版:《数据库管理系统原理与设计》 213 | 214 | - [Database Internals A Deep-Dive into How Distributed Data System Work](https://www.oreilly.com/library/view/database-internals/9781492040330/), by Alex Petrov 中文版:《数据库系统内幕》 215 | 216 | - [Designing Data-Intensive Applications](https://martin.kleppmann.com/), by Martin Kleppmann 217 | 218 | - [Database Design and Implementation](https://link.springer.com/book/10.1007/978-3-030-33836-7), by Edward Sciore 219 | 220 | - [Database System Implementation](http://infolab.stanford.edu/~ullman/dbsi.html), by Hector Garcia-Molina, Jeff Ullman, and Jennifer Widom 中文版:《数据库系统实现》 221 | - This book has been replaced by [Database Systems: The Complete Book](http://infolab.stanford.edu/~ullman/dscb.html) 222 | 223 | - [Transaction Processing Concepts and Techniques](http://jimgray.azurewebsites.net/wics_99_tp/) by Jim Gray 224 | 225 | - [Principles of Distributed Database Systems](https://cs.uwaterloo.ca/~tozsu/ddbook/), by M. Tamer Özsu and Patrick Valduriez 中文版:《分布式数据库系统原理》 226 | 227 | - [nosql distilled a brief guide to the emerging world of polyglot persistence](https://bigdata-ir.com/wp-content/uploads/2017/04/NoSQL-Distilled.pdf), by Pramod J. Sadalage and Martin Fowler 中文版:《NoSQL精髓》 228 | 229 | - [High Performance MySQL Third Edition](http://web-algarve.com/books/MySQL%20&%20PHP/high%20performance%20mysql%203rd%20edition.pdf), by Baron Schwartz, Peter Zaitsev, Vadim Tkachenko 中文版:《高性能MySQL》 230 | 231 | 232 | - [MySQL High Availability: Tools for Building Robust Data Centers](http://web-algarve.com/books/MySQL%20&%20PHP/mysql%20high%20availability.pdf), by CharlesBell,MatsKindahl,LarsThalmann 中文版:《高可用MySQL:构建健壮的数据中心》 233 | 234 | #### 2.6.3 Papers 235 | - CS 15-721 Topics Papers 236 | 237 | - Stanford CS 345 Winter2014 Topic Paper 238 | 239 | - Paper 2017 : [How to Build a Non-Volatile Memory Database Management System](https://db.cs.cmu.edu/papers/2017/p1753-arulraj.pdf) 240 | 241 | - Aticle : [Main Memory Database Systems](http:/justinlevandoski.org/papers/fnt-mmdb.pdf) 242 | 243 | - Paper thesis 2018 : [The Design and Implementation of a Non-Volatile Memory Database Management System](https://faculty.cc.gatech.edu/~jarulraj/papers/2018.thesis.pdf) 244 | 245 | - harvard Aticle : [The Design and Implementation of Modern Column-Oriented Database Systems](https://stratos.seas.harvard.edu/files/stratos/files/columnstoresfntdbs.pd) 246 | 247 | - [In-Memory Database Systems - A Paradigm Shift](https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=f0c37c844e331bea681ff7e1a981d8e053f2a753) 248 | 249 | ### 2.7 Distributed System 250 | This Section is for distributed database. 251 | 252 | - [Notes on Distributed Systems for Young Bloods](https://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/) 253 | #### 2.7.1 Courses 254 | 255 | |University|ID|Name|Time|Comment| 256 | |:--:|:--:|--|--|--| 257 | |MIT|6.824|[MIT Distributed Systems](http://nil.csail.mit.edu/6.824/2021/schedule.html)|Spring 2021|Golang| 258 | |N/A|N/A|[Distributed Systems](https://www.distributedsystemscourse.com/)|| 259 | |Columbia University|COMS 4113|[Distributed Systems Fundamentals](https://systems.cs.columbia.edu/ds1-class/01-lectures/)|| 260 | |CMU|CS 15-440|[CMU Distributed Systems](http://www.cs.cmu.edu/~dga/15-440/F10/syllabus.html)|| 261 | |Princeton|COS 418|[Princeton Distributed Systems](https://www.cs.princeton.edu/courses/archive/fall19/cos418/schedule.html)|Fall 2019|Golang| 262 | |Columbia University||[Advanced Distributed Systems](https://systems.cs.columbia.edu/ds2-class/01-papers/)|Research Papers| 263 | |MIT|6.852|[MIT Distributed Algorithms](http://courses.csail.mit.edu/6.852/08/lecture.html)|| 264 | |ETHZ|N/A|[Principles of Distributed Computing (lecture collection)](https://disco.ethz.ch/courses/podc_allstars/)|| 265 | |Stanford|CS244b|[Distributed Systems](http://www.scs.stanford.edu/20sp-cs244b/)|Spring 2020| 266 | |Washington|CSE 490H|[Distributed Systems](https://courses.cs.washington.edu/courses/cse490h/11wi/#projects)|Autumn 2010| 267 | 268 | #### 2.7.2 Books 269 | - [Distributed Systems 3rd edition (2017)](https://www.distributed-systems.net/index.php/books/ds3/) 270 | - [Distributed systems for fun and profit](http://book.mixu.net/distsys/) 271 | - [Data-Intensive Text Processing with MapReduce](http://lintool.github.io/MapReduceAlgorithms/MapReduce-book-final.pdf) 272 | - [Distributed Systems: Principles and Paradigms](https://vowi.fsinf.at/images/b/bc/TU_Wien-Verteilte_Systeme_VO_%28G%C3%B6schka%29_-_Tannenbaum-distributed_systems_principles_and_paradigms_2nd_edition.pdf) 273 | - [Principles of Computer System Design](https://ocw.mit.edu/courses/res-6-004-principles-of-computer-system-design-an-introduction-spring-2009/pages/online-textbook/) 274 | - [designing data-intensive applications](https://bayanbox.ir/view/5162266560232218675/Designing-Data-Intensive-Applications.pdf) , DDIA 275 | - [Introduction to Distributed Algorithms](https://ki.pwr.edu.pl/lemiesz/info/Tel.pdf) 276 | 277 | - [Distributed Storage Systems: Principles, Algorithms and Designs](https://eclass.uoa.gr/modules/document/file.php/D245/2015/DistrComp.pdf) 278 | 279 | - [Distributed Systems: Concepts and Design](http://www.aspu.edu.sy/laravel-filemanager/files/18/%D9%85%D8%B1%D8%A7%D8%AC%D8%B9%20%D9%83%D9%84%D9%8A%D8%A9%20%D8%A7%D9%84%D9%87%D9%86%D8%AF%D8%B3%D8%A9%20%D8%A7%D9%84%D9%85%D8%B9%D9%84%D9%88%D9%85%D8%A7%D8%AA%D9%8A%D8%A9/DISTRIBUTED%20SYSTEMS%20Concepts%20and%20Design.pdf) 280 | 281 | #### 2.7.3 Papers 282 | - Reference : 283 | - http://reiddraper.github.io/distreader/ 284 | - MIT6.824 : http://nil.csail.mit.edu/6.824/2015/schedule.html 285 | - http://henryr.github.io/distributed-systems-readings/ 286 | 287 | - Causality 288 | - Paper 1978 : [Time, Clocks, and the Ordering of Events in a Distributed Syste](https://lamport.azurewebsites.net/pubs/time-clocks.pdf) 289 | - Paper 2008 : [Interval Tree Clocks: A Logical Clock for Dynamic Systems](https://gsd.di.uminho.pt/members/cbm/ps/itc2008.pdf) , ITC2008 290 | 291 | - Consistency 292 | - [Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services](https://users.ece.cmu.edu/~adrian/731-sp04/readings/GL-cap.pdf) 293 | 294 | - Consensus 295 | - [consensus-bridging-theory-and-practice](https://web.stanford.edu/~ouster/cgi-bin/papers/OngaroPhD.pdf) 296 | - [Raft Refloated: Do We Have Consensus?](https://people.csail.mit.edu/malte/pub/papers/2015-osr-raft.pdf) 297 | - [The Part Time Parliament](https://lamport.azurewebsites.net/pubs/lamport-paxos.pdf) 298 | - [Memory Coherence in Shared Virtual Memory Systems](http://nil.csail.mit.edu/6.824/2015/papers/li-dsm.pdf) 299 | - [TreadMarks: Distributed Shared Memory on Standard WorkStations and Operating Systems](http://nil.csail.mit.edu/6.824/2015/papers/keleher-treadmarks.pdf) 300 | - [Managing Update Conflicts in Bayou, a Weakly Connected Replicated Storage System](http://nil.csail.mit.edu/6.824/2015/papers/bayou-conflicts.pdf) 301 | - [Resolving File Conflicts in the Ficus File System](http://nil.csail.mit.edu/6.824/2015/papers/ficus.pdf) 302 | - [Consistency Analysis in Bloom: a CALM and Collected Approach](https://people.ucsc.edu/~palvaro/cidr11.pdf) 303 | - Paper 2009 : [Object Storage on CRAQ High-throughput chain replication for read-mostly workloads](https://www.usenix.org/legacy/event/usenix09/tech/full_papers/terrace/terrace.pdf) , USENIX2009 304 | - [Distributed SQLite: a replicated SQLite service powered by RAFT](http://www.scs.stanford.edu/20sp-cs244b/projects/Distributed%20SQLite.pdf) 305 | 306 | - Data Stores 307 | - [Simplified Harp File System](http://www.scs.stanford.edu/20sp-cs244b/projects/Simplified%20Harp%20File%20System.pdf) 308 | - [Google File System 2.0: A Modern Design and Implementation](http://www.scs.stanford.edu/20sp-cs244b/projects/GFS%202_0.pdf) 309 | - [Replication in the Harp File System](http://nil.csail.mit.edu/6.824/2015/papers/bliskov-harp.pdf) 310 | - [Simplified GFS](http://www.scs.stanford.edu/20sp-cs244b/projects/Simplified%20GFS.pdf) 311 | - [Chunky: a distributed GFS-based file store](http://www.scs.stanford.edu/20sp-cs244b/projects/Chunky.pdf) 312 | - [Append-only Datastore](http://www.scs.stanford.edu/20sp-cs244b/projects/Append-only%20Datastore.pdf) 313 | - [Key-Value Store Using Chain Replication](http://www.scs.stanford.edu/20sp-cs244b/projects/Key-Value%20Store%20Using%20Chain%20Replication.pdf) 314 | - [ACID Compliant Distributed Key-Value Store](http://www.scs.stanford.edu/20sp-cs244b/projects/ACID%20Compliant%20Distributed%20Key-Value%20Store.pdf) 315 | - [RAFT based Key-Value Store with Transaction Support](http://www.scs.stanford.edu/20sp-cs244b/projects/RAFT%20based%20Key-Value%20Store%20with%20Transaction%20Support.pdf) 316 | 317 | - General 318 | - Paper 2010 : [The Declarative Imperative: Experiences and Conjectures in Distributed Logic](https://dsf.berkeley.edu/papers/sigrec10-declimperative.pdf) , SIGMOD2010 319 | - Paper 2004 : [MapReduce: Simplified Data Processing on Large Clusters](http://static.googleusercontent.com/media/research.google.com/en/us/archive/mapreduce-osdi04.pdf) , OSDI2004 320 | - Paper : [Availability in Globally Distributed Storage Systems](http://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/36737.pdf) 321 | 322 | - Fault Tolerance 323 | - [Remus: High Availability via Asynchronous Virtual Machine Replication](http://nil.csail.mit.edu/6.824/2015/papers/remus.pdf) 324 | - [Paxos Made Simple](http://nil.csail.mit.edu/6.824/2015/papers/paxos-simple.pdf) , ACM SIGACT News 2001 325 | - [In Search of an Understandable Consensus Algorithm](http://nil.csail.mit.edu/6.824/2015/papers/raft-atc14.pdf) 326 | - [Harvest, Yield, and Scalable Tolerant Systems](https://radlab.cs.berkeley.edu/people/fox/static/pubs/pdf/c18.pdf) 327 | - [Paxos Made Moderately Complex](https://paxos.systems/) 328 | - [Distributed Multi-Agent Consensus for Fault Tolerant Decision Making](http://www.scs.stanford.edu/20sp-cs244b/projects/Multi-Agent%20Consensus%20for%20Decision%20Making.pdf) 329 | 330 | 331 | - Atomicity 332 | - [The Akamai Network: A Platform for High-Performance 333 | Internet Applications](http://nil.csail.mit.edu/6.824/2015/papers/akamai.pdf) 334 | - Argus : [DISTRIBUTED PROGRAMMING IN ARGUS](http://nil.csail.mit.edu/6.824/2015/papers/argus88.pdf) 335 | - Thor : [Efficient Optimistic Concurrency Control 336 | Using Loosely Synchronized Clocks](http://nil.csail.mit.edu/6.824/2015/papers/thor95.pdf) 337 | 338 | - Application 339 | - Paper 2003 : [The Google File System](http://static.googleusercontent.com/media/research.google.com/en/us/archive/gfs-sosp2003.pdf) , SOSP2003 340 | - Paper 2003 : [Bigtable: A Distributed Storage System for Structured Data](http://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf) , OSDI2006 341 | - Paper 2007 : [Dynamo: Amazon’s Highly Available Key-value Store ](https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf) , SOSP2007 342 | - [Peer-to-Peer Note Taking App](http://www.scs.stanford.edu/20sp-cs244b/projects/Peer-to-Peer%20Note%20Taking%20App.pdf) 343 | - [factoryOS: A Distributed and Self-Organizing Planning System in a Supply-Chain Context](http://www.scs.stanford.edu/20sp-cs244b/projects/factoryOS.pdf) 344 | - [Megastore: Providing Scalable, Highly Available Storage for Interactive Services](https://courses.cs.washington.edu/courses/cse490h/11wi/CSE490H_files/cloud.megastore.pdf) , CIDR 2011 345 | - [PNUTS: Yahoo!’s Hosted Data Serving Platform](https://courses.cs.washington.edu/courses/cse490h/11wi/CSE490H_files/cooper-pnuts.pdf) , VLDB 2008 346 | 347 | 348 | #### 2.7.4 Blogs 349 | - Oracle7 Server Concepts Manual : [Distributed Databases](https://docs.oracle.com/cd/A57673_01/DOC/server/doc/SCN73/ch21.htm) 350 | - University of Cambridge : [Distributed Systems](https://www.cl.cam.ac.uk/teaching/2122/ConcDisSys/dist-sys-notes.pdf) 351 | - [Replication, atomicity and order in distributed systems](http://afeinberg.github.io/2011/06/17/replication-atomicity-and-order-in-distributed-systems.html) 352 | - [Distributed Systems and the End of the API](https://writings.quilt.org/2014/05/12/distributed-systems-and-the-end-of-the-api/) 353 | - [MIT Theory of Distributed Systems (TDS)](http://groups.csail.mit.edu/tds/) 354 | - [分布式系统学习资料汇总](https://www.qtmuniao.com/2021/05/16/distributed-system-material/) , Blogger : 木鸟杂记 355 | - [分布式系统(Distributed System)资料](https://github.com/ty4z2008/Qix/blob/master/ds.md) , Github Blogger : ty4z2008 356 | - [Notes on Paxos](https://matklad.github.io/2020/11/01/notes-on-paxos.html) 357 | - [Understanding Paxos](https://people.cs.rutgers.edu/~pxk/417/notes/paxos.html) 358 | - [Paxos 学习笔记1 - Basic Paxos](https://www.cnblogs.com/ljx-null/p/15940762.html) 359 | - [Paxos 学习笔记2 - Multi-Paxos](https://www.cnblogs.com/ljx-null/p/15940785.html) 360 | - [Raft 学习笔记1 - 领导人选举和日志复制](https://www.cnblogs.com/ljx-null/p/15940921.html) 361 | 362 | - [Raft协议详解](https://zhuanlan.zhihu.com/p/27207160) 363 | 364 | ## 3. SQL & Relational Algebra 365 | - SQL 知识点:Book《Database System Conceptsm》Chapter3、Chapter4、Chapter5 366 | - Relational Algebra 知识点:Book《Database System Conceptsm》Chapter6 367 | - w3cSchools SQL: https://www.w3schools.com/sql/ 368 | - [Introduction of Relational Algebra in DBMS](https://www.geeksforgeeks.org/introduction-of-relational-algebra-in-dbms/) 369 | 370 | - [Relational Algebra in DBMS: Operations with Examples](https://www.guru99.com/relational-algebra-dbms.html) 371 | 372 | - slide : [Relational Algebra and SQL](https://www3.cs.stonybrook.edu/~kifer/Courses/cse532/slides/ch5.pdf) 373 | 374 | - [SQL深入理解|关系代数、简单查询、连接](https://zhuanlan.zhihu.com/p/165365961) 375 | 376 | - [SQL 与关系代数](https://rgb-24bit.github.io/blog/2019/sql-relational-algebra.html) 377 | 378 | ## 4. DDL & DML 379 | - DDL : https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language 380 | - DML : https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax 381 | 382 | - [Difference Between DDL and DML in DBMS](https://www.guru99.com/difference-between-ddl-and-dml.html) 383 | 384 | - [MySQL · 源码分析 · 原子DDL的实现过程](http://mysql.taobao.org/monthly/2018/03/02/) 385 | 386 | - [MySQL · 源码分析 · 8.0 原子DDL的实现过程【续】](http://mysql.taobao.org/monthly/2018/07/02/) 387 | 388 | - [MySQL · 源码分析 · DDL log与原子DDL的实现](http://mysql.taobao.org/monthly/2021/07/05/) 389 | 390 | - [PolarDB · 优化改进 · DDL的优化和演进](http://mysql.taobao.org/monthly/2021/01/03/) 391 | 392 | - [PolarDB · 功能特性 · 非阻塞DDL](http://mysql.taobao.org/monthly/2022/10/01/) 393 | 394 | - [MySQL · 源码分析 · 8.0 · DDL的那些事](http://mysql.taobao.org/monthly/2020/05/05/) 395 | 396 | - [X-Engine · 引擎特性 · 并行DDL](http://mysql.taobao.org/monthly/2021/01/07/) 397 | 398 | ## 5. Relational Model 399 | - WikiPedia : [Relational model](https://en.wikipedia.org/wiki/Relational_model) 400 | - [Relational Data Model in DBMS | Database Concepts & Example](https://www.guru99.com/relational-data-model-dbms.html) 401 | - [What is ER Modeling? Learn with Example](https://www.guru99.com/er-modeling.html) 402 | - [ER (Entity Relationship) Diagram in DBMS](https://www.javatpoint.com/dbms-er-model-concept) 403 | 404 | - [Relational Model in DBMS](https://www.scaler.com/topics/dbms/relational-model-in-dbms/) 405 | 406 | - [数据库系统原理学习笔记(二)-数据库设计和ER图](https://blog.taielab.com/2018-09-30/database-system-principle-leannote-db-er-designer.html) 407 | 408 | - [Understanding Relational Databases](https://www.digitalocean.com/community/tutorials/understanding-relational-databases) 409 | 410 | - [Understanding the Enhanced ER Model Simplified 101](https://hevodata.com/learn/enhanced-er-model/) 411 | 412 | - [Data Model Relationships 101: Simplified Guide for Beginners](https://hevodata.com/learn/data-model-relationships/) 413 | 414 | - [9 ER Model Tools to use in 2023: A Comprehensive List](https://hevodata.com/learn/er-model-tools/) 415 | 416 | ## 6. Storage management 417 | CS 15-445 课程 Lecture03、Lecture04 418 | 419 | - [Managing Database Storage Structures](https://docs.oracle.com/en/database/oracle/oracle-database/19/admqs/managing-database-storage-structures.html#GUID-1C4BBF52-BBD8-4F37-92DD-80D414A75B59) 420 | 421 | - [Some study on database storage internals](https://kousiknath.medium.com/data-structures-database-storage-internals-1f5ed3619d43) 422 | 423 | - [Storage 101 Series](https://www.red-gate.com/simple-talk/databases/sql-server/database-administration-sql-server/storage-101-welcome-to-the-wonderful-world-of-storage/) 424 | - [Storage 101: Understanding the Hard-Disk Drive](https://www.red-gate.com/simple-talk/databases/sql-server/database-administration-sql-server/storage-101-understanding-the-hard-disk-drive/) 425 | 426 | - [Storage 101: Understanding the NAND Flash Solid State Drive](https://www.red-gate.com/simple-talk/databases/sql-server/database-administration-sql-server/storage-101-understanding-the-nand-flash-solid-state-drive/) 427 | 428 | - [Storage 101: RAID](https://www.red-gate.com/simple-talk/databases/sql-server/database-administration-sql-server/storage-101-raid/) 429 | 430 | - [RAID](https://www.javatpoint.com/dbms-raid) 431 | 432 | - [RAID and Its Impact on your SQL Performance](https://www.sqlservercentral.com/articles/raid-and-its-impact-on-your-sql-performance) 433 | 434 | - [Importance of RAID in Databases](https://www.sqlservercurry.com/2013/09/importance-of-raid-in-databases.html) 435 | 436 | - Microsoft Research Paper : [Faster: A Concurrent Key-Value Store with In-Place Updates](https://www.microsoft.com/en-us/research/uploads/prod/2018/03/faster-sigmod18.pdf), SIGMOD2018 437 | 438 | - [How Lock-free Data Structures Perform in Dynamic Environments: Models and Analyses](https://graal.ens-lyon.fr/~prenaud/Publis/OPODIS16) 439 | 440 | ### 6.1 Buffer Pool 441 | - CS 15-445 课程 Lecture05 442 | 443 | - [MySQL · 性能优化· InnoDB buffer pool flush策略漫谈](http://mysql.taobao.org/monthly/2015/02/01/) 444 | 445 | - [MySQL · 引擎特性 · InnoDB Buffer Pool 浅析](http://mysql.taobao.org/monthly/2020/02/02/) 446 | 447 | - [MySQL · 引擎特性 · Buffer Pool 漫谈](http://mysql.taobao.org/monthly/2019/07/03/) 448 | 449 | - [MySQL · 引擎特性 · InnoDB Buffer Pool](http://mysql.taobao.org/monthly/2017/05/01/) 450 | 451 | - [MySQL · 引擎特性 · InnoDB Buffer Page 生命周期](http://mysql.taobao.org/monthly/2020/08/04/) 452 | 453 | - [InnoDB 的 Buffer Pool 分析](https://leviathan.vip/2018/12/18/InnoDB%E7%9A%84BufferPool%E5%88%86%E6%9E%90/) 454 | 455 | 456 | ### 6.2 Index 457 | - wikiPedia : [Database index](https://en.wikipedia.org/wiki/Database_index) 458 | 459 | - Google Cloud docs : [Indexes](https://cloud.google.com/datastore/docs/concepts/indexes) 460 | 461 | - [Database Indexes Explained](https://www.essentialsql.com/what-is-a-database-index/) 462 | - [An in-depth look at Database Indexing](https://www.freecodecamp.org/news/database-indexing-at-a-glance-bb50809d48bd/) 463 | 464 | 465 | - [Database Index: An Introduction for Beginners](https://www.makeuseof.com/database-index-beginners/) 466 | 467 | - [Indexing in DBMS: What is, Types of Indexes with EXAMPLES](https://www.guru99.com/indexing-in-database.html) 468 | 469 | - [Database · 最佳实践 · 内存索引指南](http://mysql.taobao.org/monthly/2021/01/04/) 470 | 471 | - [MongoDB · 特性分析 · 索引原理](http://mysql.taobao.org/monthly/2016/07/05/) 472 | 473 | - [MongoDB · 引擎特性 · MongoDB索引原理](http://mysql.taobao.org/monthly/2018/09/06/) 474 | 475 | - [Sparse Indexes(稀疏索引)](https://www.mongodb.com/docs/manual/core/index-sparse/) 476 | 477 | - [MySQL · 引擎特性 · 二级索引分析](http://mysql.taobao.org/monthly/2020/01/01/) 478 | 479 | - [MySQL · 源码阅读 · 创建二级索引](http://mysql.taobao.org/monthly/2020/11/03/) 480 | 481 | 482 | ### 6.3 B+Tree 483 | 484 | - wikiPedia : [B+ tree](https://en.wikipedia.org/wiki/B%2B_tree) 485 | 486 | - CS 186 Spring notes pdf : [B+ tree](https://cs186berkeley.net/sp22/resources/static/notes/n04-B+Trees.pdf) 487 | 488 | - University of Utah sliede : [Database Systems Index: B+ Tree](https://www.cs.bu.edu/~gkollios/cs660f19/Slides/treeindex.pdf) 489 | 490 | - [implement a B+ Tree index file](https://inst.eecs.berkeley.edu/~cs186/fa04/btree_html) 491 | 492 | - Paper 2004 : [Query and Update Efficient B-Tree Based Indexing of Moving Object](https://www.vldb.org/conf/2004/RS20P3.PDF) 493 | 494 | - [MySQL · 引擎特性 · B+树并发控制机制的前世今生](http://mysql.taobao.org/monthly/2018/09/01/) 495 | 496 | - [Innodb 中的 Btree 实现 (一) · 引言 & insert 篇](http://mysql.taobao.org/monthly/2022/12/03/) 497 | 498 | - [POLARDB · 理论基础 · 敢问路在何方 — 论B+树索引的演进方向(上)](http://mysql.taobao.org/monthly/2018/11/01/) 499 | 500 | - [POLARDB · 性能优化 · 敢问路在何方 — 论B+树索引的演进方向(中)](http://mysql.taobao.org/monthly/2019/02/01/) 501 | 502 | - [MySQL · 源码分析 · innodb 空间索引实现](http://mysql.taobao.org/monthly/2022/08/04/) 503 | 504 | - [MySQL · 引擎特性 · 手动分析InnoDB B+Tree结构](http://mysql.taobao.org/monthly/2020/04/06/) 505 | 506 | ### 6.4 B-Tree 507 | - 课程:《Let's Build a Simple Database》 508 | - [Part 7 - Introduction to the B-Tree](https://cstack.github.io/db_tutorial/parts/part7.html) 509 | - [Part 8 - B-Tree Leaf Node Format](https://cstack.github.io/db_tutorial/parts/part8.html) 510 | 511 | - [B- Tree Datastructure](http://www.btechsmartclass.com/data_structures/b-trees.html) 512 | 513 | - [B- Trees : Software Design Using C++](https://cis.stvincent.edu/html/tutorials/swd/btree/btree.html) 514 | 515 | - Paper 2010 , [Efficient B-tree Based Indexing for Cloud Data Processing](https://www.comp.nus.edu.sg/~ooibc/vldb10-cgindex.pdf), VLDB, National University of Singapore & IBM Watson Research Center 516 | 517 | - [Database · 理论基础 · 高性能B-tree索引](http://mysql.taobao.org/monthly/2020/05/02/) 518 | 519 | - [要懂Greenplum索引,心里得有B树!](https://cn.greenplum.org/b-tree/) 520 | 521 | ### 6.5 Hash table 522 | - wikipedia : [Hash table](https://en.wikipedia.org/wiki/Hash_table) 523 | 524 | - CMU CS15-445 slide : [Hash table slide](https://15445.courses.cs.cmu.edu/fall2020/slides/06-hashtables.pdf) 525 | 526 | - GAtech.edu slide : [Hash table & Extendible Hash & Linear Hash](https://faculty.cc.gatech.edu/~jarulraj/courses/4420-f20/slides/13-hash-tables.pdf) 527 | 528 | - Blog : [An Introduction to B-Tree and Hash Indexes in PostgreSQL](https://www.sentryone.com/blog/introduction-to-b-tree-and-hash-indexes-in-postgresql) 529 | 530 | - [Extendible Hashing (Dynamic approach to DBMS)](https://www.geeksforgeeks.org/extendible-hashing-dynamic-approach-to-dbms/) 531 | 532 | - [Extendible hashing for COSC 311](https://emunix.emich.edu/~shaynes/Papers/ExtendibleHashing/extendibleHashing.html) 533 | 534 | ### 6.6 LSM-Tree 535 | - [What is a LSM Tree?](https://dev.to/creativcoder/what-is-a-lsm-tree-3d75) 536 | 537 | - [Log Structured Merge Trees](https://medium.com/swlh/log-structured-merge-trees-9c8e2bea89e8) 538 | 539 | - slide : [Log Structured Merge Tree](https://lrita.github.io/images/posts/database/lsmtree-170129180333.pdf), thanks to Pinglei Guo 540 | 541 | - Paper : [The Log-Structured Merge-Tree (LSM-Tree)](https://www.cs.umb.edu/~poneil/lsmtree.pdf) 542 | 543 | - AlibabaCloud Community Blog : [Starting from Zero: Build an LSM Database with 500 Lines of Code](https://www.alibabacloud.com/blog/starting-from-zero-build-an-lsm-database-with-500-lines-of-code_598114) 544 | 545 | - [B-Tree vs Log-Structured Merge-Tree](https://tikv.github.io/deep-dive-tikv/key-value-engine/B-Tree-vs-Log-Structured-Merge-Tree.html) 546 | 547 | ### 6.7 Bw-Tree 548 | - Paper : [The Bw-Tree: A B-tree for New Hardware Platforms](https://15721.courses.cs.cmu.edu/spring2016/papers/bwtree-icde2013.pdf) , Microsoft Research 549 | 550 | - [Lock-free data structures. Inside. Memory management schemes](https://kukuruku.co/post/lock-free-data-structures-the-inside-memory-management-schemes/) 551 | 552 | - Blog : [Bw-Tree技术解读](https://zhuanlan.zhihu.com/p/29314464) 553 | 554 | - Blog : [微软提出的无锁 B 族树 —— Bw-Tree](https://www.qtmuniao.com/2021/10/17/bwtree-index/) , 木鸟杂记 555 | 556 | 557 | ### 6.8 Storage engine 558 | - [The Beginner’s Guide to MySQL Storage Engines](https://www.sisense.com/blog/beginners-guide-to-mysql-storage-engines/) 559 | 560 | - [MySQL Storage Engines](https://www.w3resource.com/mysql/mysql-storage-engines.php) 561 | 562 | - MySQL 8.0 docs : [Chapter 15 The InnoDB Storage Engine](https://dev.mysql.com/doc/refman/8.0/en/innodb-storage-engine.html) 563 | 564 | - MySQL 8.0 docs : [Chapter 16 Alternative Storage Engines](https://dev.mysql.com/doc/refman/8.0/en/storage-engines.html) 565 | 566 | - [Hybrid storage engine for geospatial data using NoSQL and SQL paradigms](https://www.scielo.sa.cr/scielo.php?script=sci_arttext&pid=S0379-39822021000100040) 567 | 568 | - Oracle docs : [Chapter 13. Storage Engines](https://docs.oracle.com/cd/E19078-01/mysql/mysql-refman-5.0/storage-engines.html) 569 | 570 | - Paper 2021 : Designing a persistent-memory-native storage engine for SQL database systems , , IEEE NVMSA 2021 571 | - Paper : https://nvmsa2021.github.io/paper/NVMSA_2021_Session_5-2_paper.pdf 572 | - Slide : https://nvmsa2021.github.io/slides/NVMSA_2021_Session_5-2_slides.pdf 573 | 574 | - [MongoDB · 特性分析 · MMAPv1 存储引擎原理](http://mysql.taobao.org/monthly/2016/03/02/) 575 | 576 | ## 7. Query Processing 577 | - [Distributed Query Processing (DQP)](https://ogsa-dai.sourceforge.net/documentation/ogsadai4.0/ogsadai4.0-gt/DQPPart.html) 578 | 579 | - Database SQL Tuning Guide : [3 SQL Processing](https://docs.oracle.com/database/121/TGSQL/tgsql_sqlproc.htm#TGSQL175) 580 | 581 | ## 8. SQL Parser 582 | 583 | - [SQL Parser API](https://www.sqlparser.com/) 584 | - [Examples of SQL parsing](https://github.com/JSQLParser/JSqlParser/wiki/Examples-of-SQL-parsing) 585 | 586 | - [SQL语言解析器的实现](https://wiki.postgresql.org/images/b/ba/SQL%E8%AF%AD%E8%A8%80%E8%A7%A3%E6%9E%90%E5%99%A8%E7%9A%84%E5%AE%9E%E7%8E%B0.pdf) 587 | 588 | - [Parser 解析重写 SQL](https://blog.victorchu.info/posts/c3d08049/) 589 | 590 | - [openGauss内核分析(三):SQL解析](https://juejin.cn/post/7163657528520212511) 591 | ### 8.1 Syntax Check 592 | - [SQL Syntax Checker Tools](https://www.sqlshack.com/sql-syntax-checker-tools/) 593 | 594 | 595 | ### 8.2 Semantic Check 596 | - Paper : [Semantic Parsing with Syntax- and Table-Aware SQL Generation](https://aclanthology.org/P18-1034.pdf) 597 | 598 | - [Awesome Sequence to SQL and Semantic Parsing](https://medium.com/@tao.yu/awesome-sequence-to-sql-and-semantic-parsing-1d7656861679) 599 | 600 | ### 8.3 Shared Pool Check 601 | - [Shared Pool Management](http://pafumi.net/Shared_Pool_Management.html) 602 | - Blog : [Oracle Identifying Shared Pool Contention](https://blog.toadworld.com/identifying_shared_pool_contention) 603 | 604 | - [12.2 DBMS_SHARED_POOL: Pinning Objects](https://docstore.mik.ua/orelly/oracle/bipack/ch12_02.htm) 605 | 606 | ### 8.4 Actions 607 | - [Surveying SQL parser libraries in a few high-level languages](https://datastation.multiprocess.io/blog/2022-04-11-sql-parsers.html) 608 | 609 | - [SQL解析在美团的应用](https://tech.meituan.com/2018/05/20/sql-parser-used-in-mtdp.html) 610 | 611 | - [TiDB 源码阅读系列文章(五)TiDB SQL Parser 的实现](https://cn.pingcap.com/blog/tidb-source-code-reading-5) 612 | 613 | - [MYSQL · 新特性 · MySQL 8.0对Parser所做的改进](http://mysql.taobao.org/monthly/2017/04/02/) 614 | 615 | - [MySQL · 源码分析 · 词法分析及其性能优化](http://mysql.taobao.org/monthly/2017/02/04/) 616 | 617 | ## 9. SQL Executor 618 | - [SQL Executor, How does it work?](http://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_Transformers/Transformers/sqlexecutor.htm?Highlight=sql%20delimiter) 619 | 620 | - Paper : [Adaptive Execution of Compiled Queries](https://db.in.tum.de/~leis/papers/adaptiveexecution.pdf) 621 | 622 | - [MySQL · 内核特性 · 8.0 新的火山模型执行器](http://mysql.taobao.org/monthly/2020/07/01/) 623 | 624 | ## 9. SQL Optimization 625 | - [15 Best Practices for SQL Optimization](https://betterprogramming.pub/15-best-practices-for-sql-optimization-956759626321) 626 | 627 | - [Tips for SQL Database Optimization](https://www.alibabacloud.com/blog/tips-for-sql-database-optimization_595053) 628 | 629 | - [Design and Practice of Self-Developed SQL Parser](https://www.alibabacloud.com/blog/design-and-practice-of-self-developed-sql-parser_598414) 630 | 631 | - Paper : [A Pilot Study of Text-to-SQL Semantic Parsing for Vietnamese](https://openreview.net/pdf?id=uoUxTHRKEhi) 632 | 633 | ### 9.1 SQL Query Optimization 634 | - [Top 10 SQL Query Optimization Tips to Improve Database Performance](https://www.mantralabsglobal.com/blog/sql-query-optimization-tips/), by Avishek Singh 635 | 636 | - [SQL Query Optimization: How to Tune Performance of SQL Queries](https://blog.devart.com/how-to-optimize-sql-query.html) 637 | 638 | - Oracle docs : [5 Query Optimization](https://docs.oracle.com/cd/E18283_01/timesten.112/e14261/query.htm) 639 | 640 | - [The SQLite Query Optimizer Overview](https://www.sqlite.org/optoverview.html) 641 | 642 | - [How to Optimize SQL Queries: Helpful Tips and Techniques 643 | ](https://www.apriorit.com/dev-blog/381-sql-query-optimization) 644 | 645 | - [基于代价的慢查询优化建议](https://tech.meituan.com/2022/04/21/slow-query-optimized-advice-driven-by-cost-model.html) 646 | 647 | 648 | ### 9.2 Indexes Optimization 649 | - Google Cloud docs : [Optimizing Indexes](https://cloud.google.com/datastore/docs/concepts/optimize-indexes) 650 | 651 | - [How to use Indexing for SQL Query Optimization](https://towardsdatascience.com/indexing-for-sql-query-optimization-139b57db9fc6) 652 | 653 | - [Database Optimization Techniques #1: Indexing](https://optimizdba.com/database-optimization-techniques-1-indexing/) 654 | 655 | - [Understanding The Techniques Of Database Indexing](https://optimizdba.com/understanding-the-techniques-of-database-indexing/) 656 | 657 | - [Optimizing SQL Server index strategies](https://www.sqlshack.com/optimizing-sql-server-index-strategies/) 658 | 659 | - [Indexes - Optimize Queries](https://sqlmodel.tiangolo.com/tutorial/indexes/) 660 | 661 | - [Examples: Using Indexes for Query Optimization](https://docs.oracle.com/en/database/other-databases/nosql-database/22.1/sqlreferencefornosql/examples-query-optimization.html) 662 | 663 | - [Optimize index maintenance to improve query performance and reduce resource consumption](https://learn.microsoft.com/en-us/sql/relational-databases/indexes/reorganize-and-rebuild-indexes?view=sql-server-ver16) 664 | 665 | - [How to create and optimize SQL Server indexes for better performance](https://solutioncenter.apexsql.com/how-to-create-and-optimize-sql-server-indexes-for-better-performance/) 666 | 667 | - [Tutorial on MySQL Database Optimization using Indexes](https://www.section.io/engineering-education/mysql-query-optimization-using-indexes-with-examples/) 668 | 669 | - [MySQL索引原理及慢查询优化](https://tech.meituan.com/2014/06/30/mysql-index.html) 670 | 671 | - [SQL优化 · 经典案例 · 索引篇](http://mysql.taobao.org/monthly/2017/02/05/) 672 | ### 9.3 Table Optimization 673 | 674 | - [How To Optimize MySQL Tables](https://phoenixnap.com/kb/mysql-optimize-table) 675 | - [MySQL Optimize Table: How to Keep Your Database Running Smoothly](https://www.singlestore.com/blog/mysql-optimize-table/) 676 | 677 | - MySQL docs : [8.5 Optimizing for InnoDB Table](https://dev.mysql.com/doc/refman/8.0/en/optimizing-innodb.html) 678 | 679 | ### 9.4 Buffer Cache Optimization 680 | - [Buffer cache: What is it and how does it impact database performance?](https://blog.quest.com/buffer-cache-what-is-it-and-how-does-it-impact-database-performance/) 681 | 682 | - [EXPLAIN (ANALYZE) needs BUFFERS to improve the Postgres query optimization process](https://postgres.ai/blog/20220106-explain-analyze-needs-buffers-to-improve-the-postgres-query-optimization-process) 683 | 684 | ### 9.5 Storage Optimization 685 | - [Introduction to Memory-Optimized Tables](https://learn.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/introduction-to-memory-optimized-tables?view=sql-server-ver16) 686 | 687 | - [Best Practices for MySQL Database Storage Optimization](https://alibaba-cloud.medium.com/best-practices-for-mysql-database-storage-optimization-bb7d7166252e) 688 | 689 | - AWS Storage Blog : [Storage for I/O-intensive SQL Server using Amazon EBS io2 Block Express](https://aws.amazon.com/blogs/storage/storage-for-i-o-intensive-sql-server-using-amazon-ebs-io2-block-express/) 690 | 691 | - [Data Storage and Optimization](https://docs.stardog.com/operating-stardog/database-administration/storage-optimize) 692 | 693 | 694 | ### 9.7 table Structure Optimization 695 | 696 | #### 9.7.1 data reduction 697 | - MySQL docs : [15.9.1.5 How Compression Works for InnoDB Tables](https://dev.mysql.com/doc/refman/8.0/en/innodb-compression-internals.html#:~:text=MySQL%20implements%20compression%20with%20the,in%20reduction%20of%20data%20size.) 698 | 699 | 700 | 701 | #### 9.7.2 data partition 702 | - [When and how to use the SQL PARTITION BY clause](https://blog.quest.com/when-and-how-to-use-the-sql-partition-by-clause/) 703 | 704 | - [SQL Database, Table and Data Partitioning: When and How to Do It](https://www.rudderstack.com/guides/sql-table-and-data-partitioning-how-to/) 705 | 706 | 707 | ### 9.8 Optimizer 708 | Reference : https://zhuanlan.zhihu.com/p/363997416 , thanks henry liang 709 | 710 | - Paper : [Orca: A Modular Query Optimizer Architecture for Big Data](https://15721.courses.cs.cmu.edu/spring2017/papers/15-optimizer2/p337-soliman.pdf) , SIGMOD 2014 711 | 712 | - Paper : [An Overview of Cost-based Optimization of Queries with Aggregates](http://sites.computer.org/debull/95SEP-CD.pdf) 713 | 714 | - Paper : [Optimizer plan change management: improved stability and performance in Oracle 11g](http://www.vldb.org/pvldb/vol1/1454175.pdf) , VLDB 715 | 716 | - Paper : [Optimizing Queries over Partitioned Tables in MPP Systems](https://www.slideshare.net/emcacademics/optimizing-queriesoverpartitionedtablesinmpp-systems-1) , SIGMOD 717 | 718 | - Paper : [Optimization of Common Table Expressions in MPP 719 | Database Systems](http://www.vldb.org/pvldb/vol8/p1704-elhelw.pdf) , VLDB 720 | 721 | ### 9.9 SQL调优博客List 722 | - [SQL调优实战总结](https://juejin.cn/post/6931596460119031821) 723 | 724 | - [OceanBase SQL 调试优指南](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000371594) , Alibaba Ant Group 725 | 726 | - [PolarDB-X SQL 调优指南](https://doc.polardbx.com/sql-tunning/topics/) , Alibaba Cloud 727 | 728 | - [TiDB SQL性能调优](https://docs.pingcap.com/zh/tidb/dev/sql-tuning-overview) , PingCAP 729 | 730 | - [SQL调优常用方法](https://www.cnblogs.com/cnjavahome/p/4230534.html) 731 | 732 | - [MySQL 性能调优](https://heapdump.cn/monographic/detail/45/4827112) 733 | 734 | - [了解数据库性能优化](https://heapdump.cn/monographic/detail/18/4106442) , thanks to TiDB 735 | 736 | - [浅谈 数据库应用与 SQL 调优的原理](https://youwu.today/skill/thinkinsql/sql-performance/) 737 | 738 | - [一文搞定MySQL性能调优](https://juejin.cn/post/6844904114250334215) 739 | 740 | - [TiDB SQL调优实战——索引问题](https://tidb.net/blog/29aa8e6b) 741 | 742 | - [MySQL 调优笔记](https://github.com/wardseptember/notes/blob/master/docs/Mysql/mysql%E8%B0%83%E4%BC%98%E7%AC%94%E8%AE%B0.md) , Github Blogger : wardseptember 743 | 744 | - [10 essential MySQL performance tuning tips](https://www.infoworld.com/article/3210905/10-essential-mysql-performance-tuning-tips.html) 745 | 746 | - [101 MySQL tuning and optimization tips](https://topic.alibabacloud.com/a/101-mysql-tuning-and-optimization-tips_1_41_30053960.html) , Alibaba Cloud 747 | 748 | ## 10. Transaction management 749 | - Google Cloud docs : [Transactions](https://cloud.google.com/datastore/docs/concepts/transactions) 750 | 751 | - Paper 2006, [Cost-based query transformation in Oracle](https://dl.acm.org/doi/10.5555/1182635.1164215), VLDB 752 | 753 | - [分布式事务,理论与实践](https://zhuanlan.zhihu.com/p/573680047) 754 | 755 | - [MySQL · 引擎特性 · InnoDB 事务系统](http://mysql.taobao.org/monthly/2017/12/01/) 756 | 757 | - [MySQL · 引擎特性 · InnoDB 事务子系统介绍](http://mysql.taobao.org/monthly/2015/12/01/) 758 | 759 | - [Database · 原理介绍 · 数据库的事务与复制](http://mysql.taobao.org/monthly/2018/12/01/) 760 | 761 | - [MongoDB · 引擎特性 · 事务实现解析](http://mysql.taobao.org/monthly/2018/07/03/) 762 | 763 | - [Innodb中的事务隔离级别和锁的关系](https://tech.meituan.com/2014/08/20/innodb-lock.html) 764 | 765 | - [Database · 理论基础 · 数据库事务隔离发展历史](http://mysql.taobao.org/monthly/2018/10/06/) 766 | - [Database · 原理介绍 · Google Percolator 分布式事务实现原理解读](http://mysql.taobao.org/monthly/2018/11/02/) 767 | 768 | - [第 12 章 事务和并发](https://docs.jboss.org/hibernate/orm/3.5/reference/zh-CN/html/transactions.html) 769 | 770 | - Blog : [使用数据库事务](https://loopback.io/doc/zh/lb2/8880487.html) 771 | 772 | - Blog : [11. 数据库事务](https://www.bmabk.com/index.php/post/33975.html) 773 | 774 | - [InnoDB 事务分析-MVCC](https://leviathan.vip/2019/03/20/InnoDB%E7%9A%84%E4%BA%8B%E5%8A%A1%E5%88%86%E6%9E%90-MVCC/) 775 | 776 | - [InnoDB 事务分析-Undo Log](https://leviathan.vip/2019/02/14/InnoDB%E7%9A%84%E4%BA%8B%E5%8A%A1%E5%88%86%E6%9E%90-Undo-Log/) 777 | ## Lock manager 778 | - [MySQL · 引擎特性 · 8.0 Lock Manager](http://mysql.taobao.org/monthly/2020/04/09/) 779 | 780 | - [MySQL · 引擎分析 · InnoDB行锁分析](https://zhuanlan.zhihu.com/p/56519305) 781 | 782 | - [MySQL · 引擎特性 · InnoDB index lock前世今生](http://mysql.taobao.org/monthly/2015/07/05/) 783 | 784 | - [MySQL · 最佳实践 · How to read the lock information from debugger](http://mysql.taobao.org/monthly/2020/10/03/) 785 | 786 | - [PostgreSQL · 内核特性 · 死锁检测与解决](http://mysql.taobao.org/monthly/2021/07/03/) 787 | - [MySQL · 引擎特性 · InnoDB 事务锁系统简介](http://mysql.taobao.org/monthly/2016/01/01/) 788 | 789 | - [MySQL · 引擎特性 · Innodb 锁子系统浅析](http://mysql.taobao.org/monthly/2017/12/02/) 790 | 791 | - [MySQL · 答疑解惑 · MySQL 锁问题最佳实践](http://mysql.taobao.org/monthly/2016/03/10/) 792 | 793 | - [MySQL · 源码分析 · InnoDB读写锁实现分析](http://mysql.taobao.org/monthly/2020/04/02/) 794 | 795 | - [InnoDB 事务 sharded 锁系统优化](https://leviathan.vip/2020/12/22/mysql-understand-trx-lock/) 796 | 797 | - [MySQL · myrocks · 事务锁分析](http://mysql.taobao.org/monthly/2018/03/07/) 798 | 799 | - [MySQL · 源码分析 · 事务锁调度分析](http://mysql.taobao.org/monthly/2021/09/01/) 800 | 801 | - [MySQL · 引擎分析 · InnoDB行锁分析](http://mysql.taobao.org/monthly/2018/05/04/) 802 | 803 | - [DataBase · 理论基础 · B+树数据库加锁历史](http://mysql.taobao.org/monthly/2022/01/01/) 804 | 805 | 806 | 807 | ## 11. Network 808 | - [MySQL · 源码分析 · 网络通信模块浅析](http://mysql.taobao.org/monthly/2016/07/04/) 809 | 810 | - [MySQL · 引擎特性 · 网络模块优化](http://mysql.taobao.org/monthly/2019/09/03/) 811 | 812 | - [MongoDB · 特性分析 · 网络性能优化](http://mysql.taobao.org/monthly/2017/01/04/) 813 | 814 | 815 | ## 12. Serialization 816 | - [可序列化的初学者指南](https://juejin.cn/post/7126776645414813710) 817 | 818 | - AWS Redshift Blog : [可序列化的隔离](https://docs.aws.amazon.com/zh_cn/redshift/latest/dg/c_serial_isolation.html) 819 | 820 | - [从SPI机制学习数据库驱动加载过程到SnakeYaml反序列化分析](https://moonsec.top/articles/123) 821 | 822 | - [MySQL · 源码分析 · Tokudb序列化和反序列化过程](http://mysql.taobao.org/monthly/2017/06/01/) 823 | 824 | - 美团技术团队博客 : [序列化和反序列化](https://tech.meituan.com/2015/02/26/serialization-vs-deserialization.htm) 825 | 826 | ## 13. Concurrency Control 827 | - [MySQL · 引擎特性 · B+树并发控制机制的前世今生](http://mysql.taobao.org/monthly/2018/09/01/) 828 | 829 | - [浅析数据库并发控制机制](http://catkang.github.io/2018/09/19/concurrency-control.html) 830 | 831 | - [Database · 理论基础 · B-tree 物理结构的并发控制](http://mysql.taobao.org/monthly/2020/11/02/) 832 | 833 | - [PolarDB · 引擎特性 · B-tree 并发控制优化](http://mysql.taobao.org/monthly/2021/12/04/) 834 | 835 | - [MySQL · 最佳实践 · RDS MySQL 8.0 语句级并发控制](http://mysql.taobao.org/monthly/2019/06/02/) 836 | 837 | - [PgSQL· 引擎特性 · 多版本并发控制介绍及实例分析](http://mysql.taobao.org/monthly/2019/08/01/) 838 | 839 | - [数据库系统 · 事务并发控制 · Two-phase Lock Protocol](http://mysql.taobao.org/monthly/2021/10/02/) 840 | 841 | - [How does MVCC (Multi-Version Concurrency Control) work](https://vladmihalcea.com/how-does-mvcc-multi-version-concurrency-control-work/) 842 | 843 | - [Efficient Locking for Concurrent Operations on B-Trees ](https://www.csd.uoc.gr/~hy460/pdf/p650-lehman.pdf) 844 | 845 | - [Database · 理论基础 · B link Tree](http://mysql.taobao.org/monthly/2020/03/06/) 846 | 847 | - [A Blink Tree method and latch protocol for synchronous node deletion in a high concurrency environment](https://arxiv.org/pdf/1009.2764.pdf) 848 | 849 | - [周刊(第23期):图解Blink-Tree:B+Tree的一种并发优化结构和算法](https://www.codedump.info/post/20220807-weekly-23/) 850 | 851 | - Mass Tree Paper : [Cache Craftiness for Fast Multicore Key-Value Storage](https://pdos.csail.mit.edu/papers/masstree:eurosys12.pdf) 852 | 853 | - [Database · 理论基础 · Mass Tree](http://mysql.taobao.org/monthly/2019/07/07/) 854 | 855 | - Palm Tree Paper : [PALM: Parallel Architecture-Friendly Latch-Free Modifications to B+ Trees on Many-Core Processors](http://www.vldb.org/pvldb/vol4/p795-sewall.pdf) 856 | 857 | - [Database · 理论基础 · Palm Tree](http://mysql.taobao.org/monthly/2019/09/06/) 858 | 859 | - ARTree Paper : [The Adaptive Radix Tree: ARTful Indexing for Main-Memory Databases](https://db.in.tum.de/~leis/papers/ART.pdf) 860 | 861 | - [Database · 理论基础 · Multi-ART](http://mysql.taobao.org/monthly/2019/11/05/) 862 | 863 | ## 14. Crash Recovery management 864 | - [MySQL · 引擎特性 · InnoDB 崩溃恢复过程](http://mysql.taobao.org/monthly/2015/06/01/) 865 | 866 | - [PgSQL · 特性分析 · checkpoint机制浅析](http://mysql.taobao.org/monthly/2017/04/04/) 867 | 868 | - [PgSQL · 特性分析 · 数据库崩溃恢复(上)](http://mysql.taobao.org/monthly/2017/05/03/) 869 | 870 | - [PgSQL · 特性分析 · 数据库崩溃恢复(下)](http://mysql.taobao.org/monthly/2017/06/04/) 871 | 872 | - [MySQL · TokuDB · 日志子系统和崩溃恢复过程](http://mysql.taobao.org/monthly/2016/05/07/) 873 | 874 | - [MySQL · myrocks · myrocks之备份恢复](http://mysql.taobao.org/monthly/2017/02/02/) 875 | 876 | - [POLARDB · 理论基础 · 数据库故障恢复机制的前世今生](http://mysql.taobao.org/monthly/2019/01/01/) 877 | 878 | - [POLARDB · 引擎特性 · PolarDB备份与恢复介绍](http://mysql.taobao.org/monthly/2022/07/02/) 879 | 880 | - [B+树数据库故障恢复概述](http://mysql.taobao.org/monthly/2022/10/04/) 881 | 882 | - [MySQL · 5.7改进 · Recovery改进](http://mysql.taobao.org/monthly/2014/11/03/) 883 | 884 | - [MySQL · 源码分析 · binlog crash recovery](http://mysql.taobao.org/monthly/2018/07/05/) 885 | 886 | ## 15. NoSQL 887 | - [NoSQL Tutorial: What is, Types of NoSQL Databases & Example](https://www.guru99.com/nosql-tutorial.html) 888 | 889 | ## 16. NewSQL 890 | - [Database · 发展前沿 · NewSQL数据库概述](http://mysql.taobao.org/monthly/2020/12/01/) 891 | - [我们是怎样打造一款分布式数据库的?](https://shardingsphere.apache.org/blog/cn/material/database/) 892 | - [如何编写一个分布式数据库?](https://toutiao.io/posts/yedrf/preview) , PingCAP CEO刘奇 893 | - [Understand the Differences Between NewSQL and Distributed SQL](https://www.yugabyte.com/blog/newsql-distributed-sql-differences/) 894 | 895 | 896 | ## 17. Distributed & Paralleled 897 | - [Experiences with a Distributed, Scalable, 898 | Methodological File System: AnalogicFS](http://nil.csail.mit.edu/6.824/2015/papers/katabi-analogicfs.pdf) 899 | 900 | - [Monarch: Google’s Planet-Scale In-Memory 901 | Time Series Database](http://www.vldb.org/pvldb/vol13/p3181-adams.pdf) 902 | 903 | - Paper 2012 : [Spanner: Google's Globally-Distributed Database](https://www.usenix.org/system/files/conference/osdi12/osdi12-final-16.pdf) , OSDI 904 | 905 | 906 | ## 15. OLAP、OLTP、HTAP 907 | 908 | ### 15.1 OLAP 909 | - WikiPedia : [OnLine Analytical Processing](https://en.wikipedia.org/wiki/Online_analytical_processing) 910 | 911 | - AWS Blog : [What Is Online Analytical Processing?](https://aws.amazon.com/what-is/olap/) 912 | 913 | - Azure Blog : [Online analytical processing (OLAP)](https://learn.microsoft.com/en-us/azure/architecture/data-guide/relational-data/online-analytical-processing) 914 | 915 | - [An Overview of Data Warehousing and OLAP Technology](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/sigrecord.pdf) 916 | 917 | ### 15.2 OLTP 918 | - wikiPedia : [Online transaction processing](https://en.wikipedia.org/wiki/Online_transaction_processing) 919 | 920 | - [What is OLTP? Definition, Architecture, Example](https://www.guru99.com/what-is-oltp.html) 921 | 922 | - Azure Blog : [Online transaction processing (OLTP)](https://learn.microsoft.com/en-us/azure/architecture/data-guide/relational-data/online-transaction-processing) 923 | 924 | - [LAP vs. OLTP: Understanding 13 Crucial Differences](https://www.spiceworks.com/tech/artificial-intelligence/articles/olap-vs-oltp/) 925 | 926 | 927 | ### 15.3 HTAP 928 | - [Hybrid transactional/analytical processing](https://en.wikipedia.org/wiki/Hybrid_transactional/analytical_processing) 929 | 930 | - Tsinghua University databaseGroup Sigmod2022 slide : [HTAP database : A Tutorial](https://dbgroup.cs.tsinghua.edu.cn/ligl/papers/sigmod22-htap-slides.pdf) 931 | 932 | - [What is HTAP?](https://www.singlestore.com/blog/what-is-htap/) 933 | 934 | - [A Common Database Approach for OLTP and OLAP Using an In-Memory Column DataBase](http://www.sigmod09.org/images/sigmod1ktp-plattner.pdf) 935 | 936 | - PingCAP : [How We Build an HTAP Database That Simplifies Your Data Platform](https://www.pingcap.com/blog/how-we-build-an-htap-database-that-simplifies-your-data-platform/) 937 | 938 | - [F1 Lightning: HTAP as a Service论文阅读笔记](https://zhuanlan.zhihu.com/p/438540968) 939 | 940 | - [【技术硬核】从Google F1 看HTAP数据库的诞生](https://zhuanlan.zhihu.com/p/157802589) 941 | 942 | - [PolarDB HTAP的功能特性和关键技术](https://zhuanlan.zhihu.com/p/479323824) 943 | 944 | - [软硬协同的HTAP数据库系统](https://zhuanlan.zhihu.com/p/357755022) 945 | 946 | - StoneDB 文章 947 | - [什么是真正的HTAP?(一)背景篇](https://zhuanlan.zhihu.com/p/542008685) 948 | - [什么是真正的 HTAP ?(二)挑战篇](https://zhuanlan.zhihu.com/p/544938116) 949 | 950 | - AlibabaCloud Community Blog : : [400x Faster HTAP Real-time Data Analysis with PolarDB](https://www.alibabacloud.com/blog/400x-faster-htap-real-time-data-analysis-with-polardb_598985) 951 | 952 | - GreenPlum database Blog : [World Class Open Source Distributed HTAP Database Based On PostgreSQL](https://greenplum.org/world-class-open-source-distributed-htap-database-based-on-postgresql/) 953 | 954 | - Paper 2020 : [TiDB: A Raft-based HTAP Database](https://www.vldb.org/pvldb/vol13/p3072-huang.pdf), VLDB 955 | 956 | - [PolarDB for PostgreSQL HTAP 架构详解](https://apsaradb.github.io/PolarDB-for-PostgreSQL/zh/theory/arch-htap.html) 957 | 958 | - Paper 2022 : [Kernel-Assisted Copy-on-Write Snapshots for Main-Memory HTAP 959 | Databases](https://www.lfdr.de/Publications/2022/master_thesis_wolf.pdf) 960 | 961 | - [DataBase · 引擎特性 · OLAP/HTAP列式存储引擎概述](http://mysql.taobao.org/monthly/2021/03/05/) 962 | 963 | - [DataBase · 理论基础 · HTAP列存引擎探秘](http://mysql.taobao.org/monthly/2022/02/02/) 964 | 965 | - [PolarDB MySQL·HTAP·浅析IMCI的列存数据压缩](http://mysql.taobao.org/monthly/2022/08/01/) 966 | 967 | - [MySQL · HTAP · 分析型执行引擎](http://mysql.taobao.org/monthly/2021/04/04/) 968 | 969 | - [HybridDB · 最佳实践 · OLAP和OLTP一体化打造](http://mysql.taobao.org/monthly/2016/12/05/) 970 | 971 | - [MySQL · HTAP · 分析型执行引擎](http://mysql.taobao.org/monthly/2021/04/04/) 972 | 973 | ### 15.4 HSAP 974 | - Paper : Alibaba Hologres: A Cloud-Native Service for Hybrid Serving/Analytical Processing 975 | - VLDB Link : http://www.vldb.org/pvldb/vol13/p3272-jiang.pdf 976 | - [《Alibaba Hologres: A Cloud-Native Service for Hybrid Serving/Analytical Processing 》论文导读](https://zhuanlan.zhihu.com/p/366276704) 977 | 978 | - AlibabaCloud Community Blog : [What Is the Next Stop for Big Data? Hybrid Serving/Analytical Processing (HSAP)](https://www.alibabacloud.com/blog/what-is-the-next-stop-for-big-data-hybrid-servinganalytical-processing-hsap_596440) 979 | 980 | 981 | ## 16. Graph Database 982 | ### 16.1 Courses 983 | - YouTube Video : [Introduction to Graph Databases Series](https://www.youtube.com/watch?v=REVkXVxvMQE&list=PL9Hl4pk2FsvWM9GWaguRhlCQ-pa-ERd4U&index=1) 984 | 985 | ### 16.2 Books 986 | - [Graph Database : New Oppotunities For Connected Data](https://web4.ensiie.fr/~stefania.dumbrava/OReilly_Graph_Databases.pdf) , Ian Robinson, Jim Webber & Emil Eifrem 987 | 988 | - [Graph Databases For Beginners](https://neo4j.com/wp-content/themes/neo4jweb/assets/images/Graph_Databases_for_Beginners.pdf) , Merkl Sasaki, Joy Chao & Rachel Howard 989 | 990 | - [Graph-Databases-For-Dummies](https://joshbersin.com/wp-content/uploads/2022/02/Graph-Databases-For-Dummies.pdf) , Dr. Jim Webber & Rik Van Bruggen 991 | 992 | - [The Definitive Guide to Graph Databases for the RDBMS Developer](https://go.neo4j.com/rs/710-RRC-335/images/Definitive-Guide-Graph-Databases-for-RDBMS-Developer.pdf) , Michael Hunger, Ryan Boyd & William Lyon 993 | 994 | ### 16.3 Papers 995 | - Paper 2022 : [ByteGraph: A High-Performance Distributed Graph Database in ByteDance](https://vldb.org/pvldb/vol15/p3306-li.pdf) , VLDB 996 | 997 | 998 | ### 16.4 Blogs 999 | - [ByteGraph: A Graph Database for TikTok](https://www.mydistributed.systems/2023/01/bytegraph-graph-database-for-tiktok.html) 1000 | 1001 | - [字节跳动自研万亿级图数据库 & 图计算实践](https://zhuanlan.zhihu.com/p/109401046) 1002 | 1003 | - 美团技术团队 Blog : [美团图数据库平台建设及业务实践](https://tech.meituan.com/2021/04/01/nebula-graph-practice-in-meituan.html) 1004 | 1005 | - [Graph Databases for Beginners: Why Graph Technology Is the Future](https://neo4j.com/blog/why-graph-databases-are-the-future/) 1006 | 1007 | - [Graph Databases: How They Work, When to Use Them & the Advantages They Offer](https://www.influxdata.com/graph-database/) 1008 | 1009 | - [Developing a Small-Scale Graph Database: A Ten Step Learning Guide for Beginners](https://jitp.commons.gc.cuny.edu/developing-a-small-scale-graph-database-a-ten-step-learning-guide-for-beginners/) 1010 | 1011 | - [Graph Database Tutorial With Neo4j](https://www.cl.cam.ac.uk/teaching/1920/Databases/graph-tutorial.html) 1012 | 1013 | - [Getting started with Graph database using Neo4j](https://dev.to/codemaker2015/getting-started-with-graph-database-using-neo4j-38im) 1014 | 1015 | - 白皮书 : [图数据库技术十大案例](https://go.neo4j.com/rs/710-RRC-335/images/Neo4j-Top-Use-Cases-ZH.pdf) 1016 | 1017 | ## 16. Project Source Code Analysis 1018 | Just collect, some databases have not been read yet. Thanks to all Authors. 1019 | 1020 | |Database|DataBase Type|Blog|Github| 1021 | |--|--|--|--| 1022 | |SQLite|a small relational database management system|[SQLite源码分析](https://huili.github.io/index.html)|https://github.com/sqlite/sqlite| 1023 | |LevelDB|fast key-value storage library|[LevelDB 源码剖析](https://www.zhihu.com/column/c_1282795241104465920)|https://github.com/google/leveldb| 1024 | |MySQL||| 1025 | |PostGreSQL||[PostGreSQL源码解读系列](https://www.cnblogs.com/flying-tiger/category/881004.html?page=3)|| 1026 | |Redis|in-memory database that persists on disk.|[1. 如何阅读 Redis 源码?](https://blog.huangz.me/diary/2014/how-to-read-redis-source-code.html)
[2. redis源码解析](https://redissrc.readthedocs.io/en/latest/index.html)|https://github.com/redis/redis| 1027 | |MongoDB|Cloud-Native Document Database|[MongoDB 内核源码分析](https://github.com/y123456yz/reading-and-annotate-mongodb-3.6) |https://github.com/mongodb/mongo| 1028 | |TiDB|cloud-native, distributed, MySQL-Compatible database|[TiDB源码阅读分析](https://cn.pingcap.com/blog/?tag=TiDB%20%E6%BA%90%E7%A0%81%E9%98%85%E8%AF%BB)|https://github.com/pingcap/tidb| 1029 | |TiKV|distributed key-value database|[TiKV源码解析系列](https://cn.pingcap.com/blog/?tag=TiKV%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90)|| 1030 | |PolarDB-X|cloud native distributed SQL Database|[PolarDB-X 源码解读](https://www.zhihu.com/column/c_1449680469579640832)|https://github.com/polardb/polardbx-sql| 1031 | |OceanBase|distributed relational database ||https://github.com/oceanbase/oceanbase| 1032 | |openGauss|open source relational database management system|[openGauss数据库源码解析](https://www.zhihu.com/column/c_1358363246349635584)|https://github.com/opengauss-mirror| 1033 | |StoneDB|A Real-time HTAP Database|[StoneDB 源码解读系列](https://www.zhihu.com/column/c_1578402452771938304)| 1034 | |RocksDB|A Persistent Key-Value Store for Flash and RAM Storage|[官方wiki文档](https://github.com/facebook/rocksdb/wiki)|https://github.com/facebook/rocksdb| 1035 | |ToplingDB|RocksDB的增强分支|N/A|https://github.com/topling/toplingdb| 1036 | |Greenplum|open-source massively parallel data platform for analytics, machine learning and AI.|[Greenplum 分布式数据库内核揭秘(上篇)](https://cn.greenplum.org/greenplum-distributed-database-kernel-1/)
[Greenplum 分布式数据库内核揭秘(下篇)](https://cn.greenplum.org/greenplum-distributed-database-kernel-2/)|https://github.com/greenplum-db/gpdb| 1037 | |YugabyteDB|high-performance, cloud-native, distributed SQL database that aims to support all PostgreSQL features.|待更新|https://github.com/yugabyte/yugabyte-db| 1038 | |Neo4j|Graph Database|待更新|https://github.com/neo4j/neo4j| 1039 | |JanusGraph|open-source, distributed graph database|待更新|https://github.com/JanusGraph/janusgraph| 1040 | |OpenMLDB|an open-source machine learning database|待更新|https://github.com/4paradigm/OpenMLDB| 1041 | 1042 | taobao MySQL 数据库内核月报 :http://mysql.taobao.org/monthly/ 1043 | 1044 | ## 17. Mini-Project Labs 1045 | - DeepDB : https://github.com/deepbodra97/Database-System-Implementation 1046 | - Mini-OB : https://open.oceanbase.com/activities/4921877 1047 | 1048 | - CS 15-445 Labs 1049 | 1050 | ## 18. AI4DB and DB4AI (frontier tech) 1051 | - University of Magdeburg slides: 1052 | - slide 01 : https://www.dbse.ovgu.de/en/-p-578-EGOTEC-35lsmf8qh52t9v3rhrjdojrd46/_/5_ai-1.pdf 1053 | - slide 02 : https://www.dbse.ovgu.de/-p-578/_/5_ai-2.pdf 1054 | - Tsinghua University databaseGroup Github : https://github.com/TsinghuaDatabaseGroup/AIDB 1055 | - Tsinghua & MIT Paper : [AI Meets Database: AI4DB and DB4AI](https://dbgroup.cs.tsinghua.edu.cn/ligl/papers/sigmod21-tutorial-paper.pdf) , SIGMOD2021 1056 | - openGauss Blog : [openGauss AI4DB and DB4AI](https://blog.opengauss.org/en/post/2022/opengauss-ai4db-and-db4ai/) 1057 | - MIT databaseGroup : http://dsg.csail.mit.edu/mlforsystems/papers/ 1058 | - Blogger Github : https://github.com/LumingSun/ML4DB-paper-list 1059 | 1060 | 1061 | ## Database Retrospective 1062 | - [Databases in 2021: A Year in Review](https://ottertune.com/blog/2021-databases-retrospective/) , Andy Pavlo 1063 | - [Databases in 2022: A Year in Review](https://ottertune.com/blog/2022-databases-retrospective/) , Andy Pavlo 1064 | 1065 | -------------------------------------------------------------------------------- /paper-note-docs/README.md: -------------------------------------------------------------------------------- 1 |

📔 List of Papers Notes

2 | 3 | 4 | - [List of Content](#list-of-content) 5 | - [1. Processing](#1-processing) 6 | - [2. Query Optimization](#2-query-optimization) 7 | - [3. Storage](#3-storage) 8 | - [4. Buffer management](#4-buffer-management) 9 | - [5. Transaction management](#5-transaction-management) 10 | 11 | 12 | # List of Content 13 | 14 | 15 | 16 | ## 1. Processing 17 | 18 | 19 | 20 | ## 2. Query Optimization 21 | 22 | 23 | 24 | ## 3. Storage 25 | 26 | 27 | 28 | ## 4. Buffer management 29 | 30 | 31 | 32 | ## 5. Transaction management 33 | 34 | --------------------------------------------------------------------------------