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
From the blog
MySQL's New Governance Model: Two steps forward, one step to the side, and one step backwards
After years of MySQL development happening largely behind closed doors, Oracle has been making real ...
Fuzzy String Search for MySQL
MySQL's string matching is precise by design. LIKE '%shirt%' finds "shirt." It won't find "shrt" or ...
Village News: MySQL News + Events (11 June 2026)
As part of building the MySQL Community, we are going to publish a curated overview of MySQL and dat...
Your MySQL Schema is Already a REST API
You have a table. You need to serve it over HTTP. The standard path requires you to write a service ...
Village News: MySQL/Database News + Events (5 June 2026)
As part of building the MySQL Community, we are going to publish a curated overview of MySQL and dat...
Happy Path, Escape Hatch, and the Space Between
When you design an extensibility API, you face a tension: make it easy, or make it powerful? We thin...
Extend MySQL Using Rust
VillageSQL launched with C++ as the language for writing extensions — C++ is familiar territory for ...
Porting PostgreSQL Extensions to MySQL using Agent Skills
VillageSQL is a tracking fork of MySQL that adds the VillageSQL Extension Framework (VEF). Extension...