Awesome Database Learning / Recommended Courses, Books and Talks / Courses |
| Database Systems (15-445/645) | | | CMU , thanks to |
| Advanced Database Systems (15-721) | | | CMU , thanks to |
| Introduction to Database Systems | | | UC Berkeley |
| Database System Implementation | | | Stanford |
| Introduction to Database Systems | | | Cornell by Prof. Trummer |
| Let's Build a Simple Database | | | , thanks to |
Awesome Database Learning / Recommended Courses, Books and Talks / Books |
| Database Systems: The Complete Book | | | Stanford |
| Designing Data-Intensive Applications | | | , |
| Database Internals | | | |
| Foundations of Databases | | | |
| Readings in Database Systems, 5th Edition | | | |
| Database Design and Implementation: Second Edition (Data-Centric Systems and Applications) | | | |
| Principles of Distributed Database Systems, 4th ed | | | |
| Inside SQLite | | | |
| Architecture of a Database System | | | |
| Relational Database Index Design and the Optimizers | | | |
| Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control | | | |
Awesome Database Learning / Recommended Courses, Books and Talks / Talks |
| Data Structures and Algorithms for Big Databases | | | |
| A Journey From A Quick HackTo A High-Reliability Database Engine | | | |
Awesome Database Learning / Recommended Courses, Books and Talks / Blogs |
| How does a relational database work | | | |
| The Internals of PostgreSQL | | | |
| Books propose | | | |
| what is database and its types | | | |
Awesome Database Learning / SQL & Relation Algebra |
| Course Introduction and the Relational Model | | | |
| Advanced SQL | | | |
Awesome Database Learning / Query Optimizer |
| Database Systems (15-445/645) | | | CMU , thanks to |
Awesome Database Learning / Query Optimizer / Database Systems (15-445/645) |
| Query Planning & Optimization I | | | |
| Query Planning & Optimization II | | | |
Awesome Database Learning / Query Optimizer |
| 数据库内核杂谈 | | | , thanks to |
Awesome Database Learning / Query Optimizer / 数据库内核杂谈 |
| 数据库内核杂谈(七):数据库优化器(上) | | | |
| 数据库内核杂谈(八):数据库优化器(下) | | | |
Awesome Database Learning / Query Optimizer |
| SQL优化器原理 - 查询优化器综述 | | | , thanks to |
Awesome Database Learning / Query Optimizer / Planner Models |
| 数据库内核杂谈 | | | , thanks to |
Awesome Database Learning / Query Optimizer / Planner Models / 数据库内核杂谈 |
| 数据库内核杂谈(九):开源优化器 ORCA | | | |
Awesome Database Learning / Query Optimizer / Planner Models |
| SQL 查询优化原理与 Volcano Optimizer 介绍 | | | , thanks to |
| Cascades Optimizer | | | , thanks to |
| Access Path Selection in a Relational Database Management System | | | 1979, , SIGMOD |
| Query Processing in Main Memory Database Management Systems | | | 1979, , VLDB |
| Query Optimization by Simulated Annealing | | | 1987, , SIGMOD |
| Grammar-like Functional Rules for Representing Query Optimization Alternatives | | | 1988, , SIGMOD |
| The Volcano Optimizer Generator- Extensibility and Efficient Search | | | 1993, , ICDE |
| The Cascades Framework for Query Optimization | | | 1995, , IEEE Data engineering Bulltin |
| An Overview of Query Optimization in Relational Systems | | | 1998, , PODS |
| LEO – DB2’s LEarning Optimizer | | | 2001, , VLDB |
| Robust Query Processing through Progressive Optimization | | | 2004, , SIGMOD |
| Orca: A Modular Query Optimizer Architecture for Big Data | | | 2014, , SIGMOD |
| Parallelizing Query Optimization on Shared-Nothing Architectures | | | 2016, , VLDB |
| The MemSQL Query Optimizer: A modern optimizer for real-time analytics in a distributed database | | | 2016, , VLDB |
Awesome Database Learning / Query Optimizer / Subquery Optimization |
| SQL 子查询的优化 | | | , thanks to |
| Calcite 子查询处理 - I (RemoveSubQuery) | | | , thanks to |
| Calcite 子查询处理 - II (Decorrelate) | | | , thanks to |
| Orthogonal Optimization of Subqueries and Aggregation | | | 2001, , SIGMOD |
| Enhanced subquery optimizations in Oracle | | | 2009, , VLDB |
| Unnesting Arbitrary Queries | | | 2015, , BTW |
Awesome Database Learning / Query Optimizer / Join Order Optimization |
| Analysis of Two Existing and One New Dynamic Programming Algorithm for the Generation of Optimal Bushy Join Trees without Cross Products | | | 2006, , VLDB |
| How Good Are Query Optimizers, Really? | | | 2015, , VLDB |
| Adaptive Optimization of Very Large Join Queries | | | 2018, , SIGMOD |
Awesome Database Learning / Query Optimizer / Functional Dependency & Physical Properties |
| Exploiting Functional Dependence in Query Optimization | | | 2000, |
| Fundamental Techniques for Order Optimization | | | 1996, , SIGMOD |
| An Efficient Framework for Order Optimization | | | 2004, , ICDE |
| Incorporating Partitioning and Parallel Plans into the SCOPE Optimizer | | | 2010, , ICDE |
Awesome Database Learning / Query Optimizer / Cost Model |
| Modelling Costs for a MM-DBMS | | | 1996, , in Real-Time Databases |
| Approximation Schemes for Many-Objective Query Optimization | | | 2014, , SIGMOD |
| Multi-Objective Parametric Query Optimization | | | 2015, , VLDB |
Awesome Database Learning / Query Optimizer / Statistics |
| Accurate Estimation of the Number of Tuples Satisfying a Condition | | | 1984, , SIGMOD |
| Optimal Histograms for Limiting Worst-Case Error Propagation in the Size of Join Results | | | 1993, , ACM Trans. on Database Systems |
| Universality of Serial Histograms | | | 1993, , VLDB |
| Balancing Histogram Optimality and Practicality for Query Result Size Estimation | | | 1995, , SIGMOD |
| Improved Histograms for Selectivity Estimation of Range Predicates | | | 1996, , SIGMOD |
| SEEKing the truth about ad hoc join costs | | | 1997, , VLDB |
| Towards Estimation Error Guarantees for Distinct Values | | | 2000, , SIGMOD/PODS |
| Distinct Sampling for Highly-Accurate Answers to Distinct Values Queries and Event Reports | | | 2001, , VLDB |
| The History of Histograms | | | 2003, , VLDB |
| An Improved Data Stream Summary: The Count-Min Sketch and its Applications | | | 2005, , Journal of Algorithms |
| New Estimation Algorithms for Streaming Data: Count-min Can Do More | | | 2007, |
| Preventing Bad Plans by Bounding the Impact of Cardinality Estimation Errors | | | 2009, , VLDB |
| Histograms Reloaded: The Merits of Bucket Diversity | | | 2010, , SIGMOD |
| Exploiting Ordered Dictionaries to Efficiently Construct Histograms with Q-Error Guarantees in SAP HANA | | | 2014, , SIGMOD |
| Adaptive Statistics in Oracle 12c | | | 2017, , VLDB |
| Pessimistic Cardinality Estimation: Tighter Upper Bounds for Intermediate Join Cardinalities | | | 2019, , SIGMOD |
| Deep Unsupervised Cardinality Estimation | | | 2019, , VLDB |
| NeuroCard: One Cardinality Estimator for All Tables | | | 2020, , VLDB |
| Synopses for Massive Data: Samples, Histograms, Wavelets, Sketches | | | |
Awesome Database Learning / Query Execution |
| Database Systems (15-445/645) | | | CMU , thanks to |
Awesome Database Learning / Query Execution / Database Systems (15-445/645) |
| Query Execution I | | | |
| Query Execution II | | | |
Awesome Database Learning / Query Execution / Execution Framework |
| Volcano-An Extensible and Parallel Query Evaluation System | | | 1994, , IEEE Transactions on Knowledge and Data EngineeringFebruary |
| Morsel-Driven Parallelism: A NUMA-Aware Query Evaluation Framework for the Many-Core Age | | | 2014, , SIGMOD |
Awesome Database Learning / Query Execution / Vectorization vs Compilization |
| Overhead of a Generalized Query Execution Engine | 40 | over 4 years ago | , from , thanks to the Pivotal Engineering team |
| MonetDB/X100: Hyper-Pipelining Query Execution | | | 2005, , CIDR |
| Efficiently Compiling Efficient Query Plans for Modern Hardware | | | 2011, , VLDB |
| Relaxed Operator Fusion for In-Memory Databases: Making Compilation, Vectorization, and Prefetching Work Together At Last | | | 2017, , VLDB |
| Everything You Always Wanted to Know About Compiled and Vectorized Queries But Were Afraid to Ask | | | 2018, , VLDB |
| Adaptive Execution of Compiled Queries | | | 2018, , ICDE |
Awesome Database Learning / Query Execution / Join |
| Multi-Core, Main-Memory Joins: Sort vs. Hash Revisited | | | 2013, , VLDB |
| Looking Ahead Makes Query Plans Robust | | | 2017, , VLDB |
Awesome Database Learning / Query Execution / Hash Table |
| Database Systems (15-445/645) | | | CMU , thanks to |
Awesome Database Learning / Query Execution / Hash Table / Database Systems (15-445/645) |
| Hash Tables | | | |
Awesome Database Learning / Query Execution / Hash Table |
| Fibonacci Hashing: The Optimization that the World Forgot (or: a Better Alternative to Integer Modulo) | | | , thanks to |
| All hash table sizes you will ever need | | | , thanks to |
Awesome Database Learning / Query Execution / Bloom Filter |
| SuRF: Practical Range Query Filtering with Fast Succinct Tries | | | 2018, , SIGMOD |
Awesome Database Learning / DDL |
| Online, Asynchronous Schema Change in F1 | | | 2013, , VLDB |
Awesome Database Learning / Relational Model |
| What is a Relational Database? | | | , thanks to |
| What is a Relational Database? | | | ,thank to |
Awesome Database Learning / Relational Model / Codd's Rules |
| Codd’s Rules for Relational Database Systems | | | , thanks to |
Awesome Database Learning / Relational Model / Relational Data Model |
| Relational model | | | , thanks to |
Awesome Database Learning / Relational Model / Relational Algebra |
| Introduction of Relational Algebra in DBMS | | | , thanks to |
Awesome Database Learning / Relational Model / ER to Relational Model |
| ER Model to Relational Model | | | , thanks to |
Awesome Database Learning / Relational Model / SQL - Overview |
| An Overview of SQL Text Functions | | | , thanks to |
Awesome Database Learning / Transaction / Isolation Levels |
| 一致性模型 | | | , thanks to |
| A Critique of ANSI SQL Isolation Levels | | | 1995, , SIGMOD |
| Generalized Isolation Level Definitions | | | 2000, , Proceedings of 16th International Conference on Data Engineering |
Awesome Database Learning / Transaction / Concurrency Control |
| Concurrency Control Theory | | | |
| Two-Phase Locking Concurrency Control | | | |
| Timestamp Ordering Concurrency Control | | | |
| Multi-Version Concurrency Control | | | |
| Multi-Version Concurrency Control (Design Decisions) | | | |
| Multi-Version Concurrency Control (Protocols) | | | |
| Multi-Version Concurrency Control (Garbage Collection) | | | |
| The Notions of Consistency and Predicate Locks in a Database System | | | 1976, , Communications of the ACM |
| Concurrency Control in Distributed Database Systems | | | 1981, , ACM Computing Surveys |
| On Optimistic Methods for Concurrency Control | | | 1981, , ACM Transactions on Database Systems |
| Multiversion Concurrency Control - Theory and Algorithms | | | 1983, , ACM Transactions on Database Systems |
| Serializable Snapshot Isolation in PostgreSQL | | | 2012, , VLDB |
| Calvin: Fast Distributed Transactions for Partitioned Database Systems | | | 2012, , SIGMOD |
| MaaT: effective and scalable coordination of distributed transactions in the cloud | | | 2014, , VLDB |
| Staring into the Abyss: An Evaluation of Concurrency Control with One Thousand Cores | | | 2014, , VLDB |
| An Evaluation of the Advantages and Disadvantages of Deterministic Database Systems | | | 2014, , VLDB |
| Fast Serializable Multi-Version Concurrency Control for Main-Memory Database Systems | | | 2015, , SIGMOD |
| An Empirical Evaluation of In-Memory Multi-Version Concurrency Control | | | 2017, , VLDB |
| An Evaluation of Distributed Concurrency Control | | | 2017, , VLDB |
| Scalable Garbage Collection for In-Memory MVCC Systems | | | 2019, , VLDB |
Awesome Database Learning / Network |
| Advanced Database Systems (15-721) | | | CMU , thanks to |
Awesome Database Learning / Network / Advanced Database Systems (15-721) |
| Networking Protocols | | | |
Awesome Database Learning / Network |
| The End of Slow Networks: It's Time for a Redesign | | | 2016, , VLDB |
| Accelerating Relational Databases by Leveraging Remote Memory and RDMA | | | 2016, , SIGMOD |
| Don't Hold My Data Hostage: A Case for Client Protocol Redesign | | | 2017, , VLDB |
Awesome Database Learning / Storage / NoSQL Systems |
| Bigtable: A Distributed Storage System for Structured Data | | | 2006, , OSDI |
| Dynamo: Amazon’s Highly Available Key-value Store | | | 2007, , SOSP |
| PNUTS: Yahoo!’s Hosted Data Serving Platform | | | 2008, , VLDB |
| Cassandra - A Decentralized Structured Storage System | | | 2010, , SOSP |
| PNUTS to Sherpa: Lessons from Yahoo!’s Cloud Database | | | 2019, , VLDB |
Awesome Database Learning / Storage / Buffer Management |
| Database Systems (15-445/645) | | | CMU , thanks to |
Awesome Database Learning / Storage / Buffer Management / Database Systems (15-445/645) |
| Buffer Pools | | | |
Awesome Database Learning / Storage / Buffer Management |
| The 5 Minute Rule for Trading Memory for Disc Accesses and the 5 Byte Rule for Trading Memory for CPU Time | | | 1987, , SIGMOD |
| The Five Minute Rule 20 Years Later and How Flash Memory Changes the Rules | | | 2008, , ACM Queue |
| Managing Non-Volatile Memory in Database Systems | | | 2018, , SIGMOD |
| LeanStore: In-Memory Data Management Beyond Main Memory | | | 2018, , ICDE |
| Umbra: A Disk-Based System with In-Memory Performance | | | 2020, , CIDR |
Awesome Database Learning / Storage / Disk IO |
| On Disk IO, Part 1: Flavors of IO | | | , thanks to |
| On Disk IO, Part 2: More Flavours of IO | | | , thanks to |
| On Disk IO, Part 3: LSM Trees | | | , thanks to |
| On Disk IO, Part 4: B-Trees and RUM Conjecture | | | , thanks to |
| On Disk IO, Part 5: Access Patterns in LSM Trees | | | , thanks to |
| Ensuring data reaches disk(LWN) | | | |
| Read, write & space amplification - pick 2 | | | , thanks to |
| Design Tradeoffs of Data Access Methods | | | 2016, , SIGMOD |
| Designing Access Methods: The RUM Conjecture | | | 2016, , EDBT |
Awesome Database Learning / Storage / B-Tree |
| B树、B+树索引算法原理(上) | | | thanks to |
| B树、B+树索引算法原理(下) | | | |
| Trees Indexes I | | | |
| Trees Indexes II | | | |
| OLTP Indexes (B+Tree Data Structures) | | | |
| The Ubiquitous B-Tree | | | 1979, |
Awesome Database Learning / Storage / LSM-Tree |
| The Log-Structured Merge-Tree (LSM-Tree) | | | 1996, , |
| A Comparison of Fractal Trees to Log-Structured Merge (LSM) Trees | | | 2014, |
| WiscKey: Separating Keys from Values in SSD-conscious Storage | | | 2017, , TOS |
| LSM-based Storage Techniques: A Survey | | | 2019, |
Awesome Database Learning / Storage / Learned Indexes Structures |
| The Case for Learned Index Structures | | | 2018, |
| Learning Multi-dimensional Indexes | | | 2019, |
| XIndex: A Scalable Learned Index for Multicore Data Storage | | | 2020, |
| RadixSpline: A Single-Pass Learned Index | | | 2020, , , aiDM@SIGMOD |
| The PGM-index: a fully-dynamic compressed learned index with provable worst-case bounds | | | 2020, , , VLDB |
| From WiscKey to Bourbon: A Learned Index for Log-Structured Merge Trees | | | 2020, |
Awesome Database Learning / Serializing & RPC |
| Protocol Buffers Developer Guide | | | |
| gRPC Documntation | | | |
Awesome Database Learning / Data Partitioning |
| TiDB Internal (I) - Data Storage | | | |
| Partitioning Behavior of DynamoDB | | | , thanks to |
| Dynamo: Amazon’s Highly Available Key-value Store | | | 2007, , SOSP |
Awesome Database Learning / Replication & Consistency |
| Tick or Tock? Keeping Time and Order in Distributed Databases | | | , thanks to |
| Consistency Tradeoffs in Modern Distributed Database System Design | | | 2012, |
| Strong and Efficient Consistency with Consistency-Aware Durability | | | 2020, , FAST 2020 |
Awesome Database Learning / Consensus |
| Distributed consensus revised | | | University of Cambridge , a great paper about Consenssus especially Paxos and Paxos-Related algorithms, by Heidi Howard |
| Ark: A Real-World Consensus Implementation | | | 2014, , CoRR |
Awesome Database Learning / Scheduling |
| Building a Large-scale Distributed Storage System Based on Raft | | | , by Ed Huang |
| Automated Demand-driven Resource Scaling in Relational Database-as-a-Service | | | 2016, , SIGMOD |
| Autoscaling Tiered Cloud Storage in Anna | | | 2019, , VLDB |
| Adaptive HTAP through Elastic Resource Scheduling | | | 2020, , SIGMOD |
| MorphoSys: Automatic Physical Design Metamorphosis for Distributed Database Systems | | | 2020, , VLDB |
Awesome Database Learning / Benchmark & Testing |
| Use go-ycsb to benchmark different databases (1) | | | , thanks to |
| Chaos Tools and Techniques for Testing the TiDB Distributed NewSQL Database | | | , thanks to |
| Creating Custom Sysbench Scripts | | | , thanks to |
| Benchmarking Cloud Serving Systems with YCSB | | | 2010, , SOCC |
Awesome Database Learning / HTAP |
| TiDB: A Raft-based HTAP Database | | | 2020, , VLDB |
| F1 Lightning: HTAP as a Service | | | 2020, , VLDB |
Awesome Database Learning / TLA+ |
| The TLA+ Video Course | | | |