SELECT *
FROM tbl
WHERE x = 42;
SELECT *
FROM tbl
WHERE x > 42
AND x < 99;
SELECT
x, y, z,
COUNT(*)
FROM tbl
GROUP BY x, y, z
See more at https://dbdb.io/browse?tag=oltp
See more at https://dbdb.io/browse?tag=oltp
See more at https://dbdb.io/browse?tag=olap
BigQuery
Redshift
See more at https://dbdb.io/browse?tag=olap
Hive
Snowflake
ClickHouse
DuckDB
Impala
Pinot
Image from Database Internals (1 - Introduction and Overview/DBMS Architecture)
Image from Database Internals (1 - Introduction and Overview/DBMS Architecture)
Image from Database Internals (1 - Introduction and Overview/DBMS Architecture)
Image from Database Internals (1 - Introduction and Overview/DBMS Architecture)
Image from Database Internals (1 - Introduction and Overview/DBMS Architecture)
Slides copied from Database Storage Part 1 - @CMUDatabaseGroup
CPU Registers
CPU Cache
DRAM
SSD
HDD
Network Storage
Slides copied from Database Storage Part 1 - @CMUDatabaseGroup
CPU Registers
CPU Cache
DRAM
SSD
HDD
Network Storage
Disk
Memory
CPU
{
{
Slides copied from Database Storage Part 1 - @CMUDatabaseGroup
CPU Registers
CPU Cache
DRAM
SSD
HDD
Network Storage
Faster
Smaller
More Expensive
Slower
Larger
Cheaper
Image from Database Internals (2 - B-Tree Basics/Disk-Based Structures/Solid State Drives)
Image from Database Internals (2 - B-Tree Basics/Disk-Based Structures/Solid State Drives)
Page: 2 - 16 Kb
Block: >= 1 MB
Planes:
Die:
Memory Cell: 1 bit
Strings: 32 or 64 cells
Arrays: Multiple strings
Page: Multiple arrays
Attribute | Solid-State Drive | Hard Disk Drive |
---|---|---|
Price per capacity | 30 cents / GB | 3 cents / GB |
Start-up time | Almost Instantaneous | Several Seconds |
Sequential-access performance | 200 - 3500 MB/sec | 200 - 480 MB/sec |
Random-access performance | < 0.1 ms | 3 - 12 ms |
Parallel Access | Yes | No |
Slides copied from Database Storage Part 1 - @CMUDatabaseGroup
CPU Registers
CPU Cache
DRAM
SSD
HDD
Network Storage
Faster
Smaller
More Expensive
Slower
Larger
Cheaper
Slides copied from Database Storage Part 1 - @CMUDatabaseGroup
CPU Registers
CPU Cache
DRAM
SSD
HDD
Network Storage
Faster
Smaller
More Expensive
Slower
Larger
Cheaper
Volatile
Random Access
Byte-Addressable
Non-Volatile
Sequential Access
Block-Addressable
Slides copied from Database Storage Part 1 - @CMUDatabaseGroup
CPU Registers
CPU Cache
DRAM
SSD
HDD
Network Storage
Volatile
Random Access
Byte-Addressable
Non-Volatile
Sequential Access
Block-Addressable
Slides copied from Database Storage Part 1 - @CMUDatabaseGroup
1 ns | L1 Cache Ref |
4 ns | L2 Cache Ref |
100 ns | DRAM |
16,000 ns | SSD |
2,000,000 ns | HDD |
~50,000,000 ns | Network Storage |
1,000,000,000 ns | Tape Archives |
Slides copied from Database Storage Part 1 - @CMUDatabaseGroup
1 ns | L1 Cache Ref | 1 sec |
4 ns | L2 Cache Ref | 4 sec |
100 ns | DRAM | 100 sec |
16,000 ns | SSD | 4.4 hours |
2,000,000 ns | HDD | 3.3 weeks |
~50,000,000 ns | Network Storage | 1.5 years |
1,000,000,000 ns | Tape Archives | 31.7 years |
Jeff Dean's Latency Numbers via github:colin-scott/interactive_latencies
1 sec
10 sec
100 sec
3 hours
1 day
1.5 weeks
16.5 weeks
3 years
3 decades
3 centuries
x1 Million
Database | Example | Peak QPS (w/o experts) |
Storage Capacity |
---|---|---|---|
Cache (KV Store) | Valkey / Redis | 150k QPS | ~13 GB (AWS ElasticCache) |
OLTP | Postgres | 50k TPS | 64 TiB (Aurora on RDS) |
OLAP | ClickHouse on EBS | 5k QPS | 64 TiB (Max EBS Volume) |
ClickHouse on S3 |
Unscientific and Totally Made-Up Capacity
See more from Ben Langmead JHU Burrows-Wheeler Indexing Course
Copied from CMU DB Course - Query Execution Part 1