├── 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 |
--------------------------------------------------------------------------------