Learn MySQL
Practical guides for developers building on VillageSQL
MySQL Indexes
How to speed up queries with the right index strategy
JSON in MySQL
Store, query, and manipulate JSON documents natively
Window Functions
Running totals, rankings, and moving averages
Primary Key Strategies
Auto-increment, UUIDs, and when to use each
Password Hashing
Bcrypt and Argon2 for secure credential storage
Postgres to MySQL
A practical migration guide for common patterns
MySQL on Docker
Run MySQL in containers for local and production
Stored Procedures
Encapsulate and reuse SQL logic in the database
Joins
How to combine rows from multiple tables with INNER, LEFT, and other JOINs
Transactions
Keep your data consistent with ACID-compliant transactions
CTEs in MySQL
Write readable, recursive queries with common table expressions
Slow Query Log
Find and fix the queries slowing down your database