Fundamentals of Database Engineering
Learn ACID, Indexing, Partitioning, Sharding, Concurrency control, Replication, DB Engines, Best Practices and More!
Learn ACID, Indexing, Partitioning, Sharding, Concurrency control, Replication, DB Engines, Best Practices and More!
Database Engineering is a very interesting sector in software engineering. If you are interested in learning about database engineering you have come to the right place. I have curated this course carefully to discuss the Fundamental concepts of database engineering.
This course will not teach you SQL or programming languages, however, it will teach you skillsets and patterns that you can apply in database engineering. A few of the things that you will learn are Indexing, Partitioning, Sharding, Replication, b-trees in-depth indexing, Concurrency control, database engines and security, and much more.
I believe that learning the fundamentals of database engineering will equip you with the necessary means to tackle difficult and challenging problems yourself. I always compare engineering to math, you never memorize specific formulas and equations, you know the basic proves and derive and solve any equation one throws at you. Database engineering is similar, you can't possibly say MongoDB is better than MySQL or Postgres is better than Oracle. Instead, you learn your use case and by understanding how each database platform does its own trade-offs you will be able to make optimal decisions.
One other thing you will learn in this course is the lowest database interface that talks to the OS which is the database engine. Database engines or storage engines or sometimes even called embedded databases is a software library that a database management software uses to store data on disk and do CRUD (create update delete) Embedded means move everything in one software no network client-server. In this video course, I want to go through the few popular database engines, explain the differences between them, and finally, I want to spin up a database and change its engine and show the different features of each engine.
Enjoy the course.
FAQ area empty
Create Postgres Table with a million Rows (from scratch)
262Getting Started with Indexing
1098Understanding The SQL Query Planner and Optimizer with Explain
616Bitmap Index Scan vs Index Scan vs Table Scan
684Key vs Non-Key Column Database Indexing
1022Index Scan vs Index Only Scan
488Combining Database Indexes for Better Performance
847How Database Optimizers Decide to Use Indexes
679Create Index Concurrently - Avoid Blocking Production Database Writes
190Bloom Filters
558Working with Billion-Row Table
788How UUIDs in B+Tree Indexes can affect performance
1130Article - The Cost of Long running Transactions
Article - Microsoft SQL Server Clustered Index Design
Indexing Quiz
Introduction to Database Partitioning
86What is Partitioning?
208Vertical vs Horizontal Partitioning
127Partitioning Types
92The Difference Between Partitioning and Sharding
163Preparing: Postgres, Database, Table, Indexes
322Execute Multiple Queries on the Table
78Create and Attach Partitioned Tables
226Populate the Partitions and Create Indexes
239Class Project - Querying and Checking the Size of Partitions
332The Advantages of Partitioning
281The Disadvantages of Partitioning
168Section Summary - Partitioning
70How to Automate Partitioning in Postgres
606Introduction to Database Sharding
66What is Database Sharding?
211Consistent Hashing
161Horizontal partitioning vs Sharding
68Sharding with Postgres
65Spin up Docker Postgres Shards
443Writing to a Shard
1318Reading from a Shard
679Advantages of Database Sharding
119Disadvantages of Database Sharding
213Database Sharding Section Summary
45When Should you consider Sharding your Database?
1206How to Secure Your Postgres Database by Enabling TLS/SSL
721Deep Look into Postgres Wire Protocol with Wireshark
847Deep Look Into MongoDB Wire Protocol with Wireshark
1444What is the Largest SQL Statement that You can Send to Your Database
583Best Practices Working with REST & Databases
413Database Permissions and Best Practices for Building REST API
1420Introduction to Homomorphic Encryption
112What is Encryption?
89Why Can't we always Encrypt?
272What is Homomorphic Encryption
300Homomorphic Encryption Demo
35Clone and Build the Code
155Going Through the Code and the Database
65Searching The Encrypted Database
190Is Homomorphic Encryption Ready?
150Heap Index scan instead of Index only scan why?
774What is the unit of the Cost in Postgres Planner?
375All Isolation Levels - Explained Details
1567Snapshot and Repeatable Read Isolation difference?
475I have an Index why is the database doing a full table scan?
457Why Databases Read Pages instead of Rows?
662How does Indexing a column with duplicate values work?
653Should I drop unused indexes?
525Why use serializable Isolation Level when we have SELECT FOR UPDATE?
419Can I use the same database connection for multiple clients?
420Do I need a transaction if I'm only reading?
947Why does an update in Postgres touches all indexes?
1429What is the value of bitmap index scan?
1545What does Explain Analyze actually do?
1177Postgres vs MySQL (The fundamental differences)
Does Create Index block writes and Why?
675Postgres Process Architecture
Index Scan vs Index Seek
SELECT COUNT (*) can impact your Backend Application performance, here is why
636How Shopify Switched from UUID as Primary Key
1882How does the Database Store Data On Disk?
1135Postgres Architecture
1995Is QUIC a Good Protocol for Databases?
735What is a Distributed Transaction?
1288Hash Tables and Consistent Hashing
2962Indexing in PostgreSQL vs MySQL
781Why Uber Moved from Postgres to MySQL (Discussion)
2833Can NULLs Improve your Database Queries Performance?
1272Write Amplification Explained in Backend Apps, Database Systems and SSDs
1275WAL, Redo and Undo logs
2350Optimistic vs Pessmistic Concurrency Control
1056Avoid SELECT *, even on a single-column tables
Postgres Locks - A Deep Dive
How Slow is select * in row store
MySQL InnoDB Advanced Locking Techniques
2433Have worked with databases before but wish to get deeper understanding
Basic SQL knowledge
Learn and understand ACID Properties
Database Indexing
Database Partitioning
Database Replication
Database Sharding
Database Cursors
Concurrency Control (Optimistic, Pessimistic)
B-Trees in Production Database Systems
Database System Designs
Difference between Database Management System, Database Engine and Embedded database
Database Engines such as MyISAM, InnoDB, RocksDB, LevelDB and More
Benefits of Using one database engine over the other
Switching Database Engines with MySQL
Database Security
Homomorphic Encryption