Skip to content

fmpaci/SQL-Levels-Explained

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

SQL-Levels-Explained

Explaining sql levels based on one meme:

If you're replicating SQL databases, whether MySQL, Postgres, or SQL Server, check out Airbyte!

Level 0

  • Concepts
    • ORMs
    • data types
    • foreign keys
    • indexes
  • SQL: Just go through https://mode.com/sql-tutorial/
    • SELECT/INSERT/UPDATE/DELETE
      • SELECT DISTINCT
    • ORDER BY
    • GROUP BY
    • LIMIT/OFFSET
    • CREATE TABLE
    • JOIN

Level 1

  • Concepts
    • ACID
    • transactions
    • keyset pagination
    • normal forms
    • computed columns
    • stored columns
    • inverted indexes
    • window functions
  • SQL
    • outer joins
    • ORDER BY in aggregates
    • CTEs
    • query plans and EXPLAIN

Level 2

  • Concepts
    • Connection pools
    • plan hints
    • cursors
    • MVCC garbage collection
    • recursive CTEs
    • LATERAL joins
  • Insights
    • ORMs create bad queries: explanation needed
    • optimizers don't work without table statistics: explanation needed
    • there are no non-nullable types: explanation needed

Level 3

Level 4

  • Concepts
    • SELECT FOR UPDATE
    • denormalization
    • transaction contention
    • sargability
    • star schemas
    • utf8mb4
  • Insights
    • Ascending Key Problem: explanation needed
    • Ambiguous network errors: explanation needed
    • NULLs in CHECK constraints are truthy: explanation needed

Level 5

  • Concepts
    • DEFERRABLE INITIALLY IMMEDIATE
    • MATCH PARTIAL foreign keys
    • EXPLAIN approximates SELECT COUNT(*)
    • causual reverse
  • Insights
    • TPCC requires wait times: explanation needed
    • cost models don't reflect reality: explanation needed
    • 'null'::jsonb IS NULL = false: explanation needed

Level 6

  • Concepts
  • Battle Scars
    • Vectorized doesn't mean SIMD: explanation needed
    • join ordering is NP hard: explanation needed
    • NULLs are equal in DISTINCT but inequal in UNIQUE: explanation needed

Level 7

Releases

No releases published

Packages

No packages published