Turning Learners Into Developers
Codekilla
CODEKILLA
back to course
Lesson 02 / 2511%· free preview
Introduction to MySQL2/10

History of MySQL

From 1995 MySQL AB → Sun (2008) → Oracle (2010).

// mysql architecture · request lifecycle from client to diskClientmysql / Workbench / appConn Poolauth · thread / connParserlex · syntax treeOptimizerplan · index choiceExecutorfetch rowsStorage EngineInnoDB · MyISAM.ibd / .frmClick a step to walk the SQL request through the MySQL server.
Visual explanation diagram · click steps to walk through it
Definition

MySQL was born in 1995 at MySQL AB (Sweden), founded by Michael 'Monty' Widenius, David Axmark, and Allan Larsson. Sun Microsystems acquired it in 2008 for $1B; Oracle then acquired Sun in 2010 and inherited MySQL.

How It Works

Following Oracle's acquisition, Monty forked the project as MariaDB to guarantee the open-source future — MariaDB is now a drop-in replacement on Linux distros like Debian and RHEL. MySQL itself continues to evolve under Oracle with major releases 5.6 → 5.7 → 8.0 → 8.4 → 9.x.

Example
sql
SELECT 'Hello, MySQL!' AS greeting;
Expected Output
(Run in MySQL Workbench or `mysql` CLI — values depend on your data.)
Why It Matters

Knowing the lineage explains why you'll see MySQL, MariaDB, and Percona Server in the wild — they're all close cousins that speak the same SQL with subtle differences.

Key Takeaways
  • 1995 — first public release.
  • 2008 — Sun acquires MySQL AB for $1B.
  • 2010 — Oracle acquires Sun → owns MySQL.
  • 2009 — Monty forks MariaDB to keep it FOSS.
  • 2018 — MySQL 8.0 ships (current LTS).
Interview Questions

Practice Questions
  1. Compare SELECT VERSION(); output on a MySQL vs MariaDB install.
  2. Read the release notes for MySQL 8.0 — see what changed since 5.7.
  3. Spin up MariaDB in Docker — verify your MySQL client connects unchanged.
Pro Tips
  • If you're on a Linux distro that ships 'MySQL', it's almost certainly MariaDB.
  • For new projects in 2026 — pick MySQL 8.0+ unless your stack mandates MariaDB.
  • Read MySQL release notes carefully — minor versions often change defaults.
// Try It Yourself · MySQL Playground
in-browser SQLite · no network

Run any SELECT, INSERT, JOIN or GROUP BY against the seeded users · products · orders tables — your changes are sandboxed and reset whenever you click Reset DB.

Click Run to see results here.
// see seed schema (3 tables · 8 users · 8 products · 12 orders)
users (id, name, email, country, age, created_at)
products (id, name, price, stock, category)
orders (id, user_id → users.id, product_id → products.id, qty, total, created_at)
// Challenges0 / 6 solved

Each challenge is auto-graded — write the SQL, click Submit answer, and we'll compare your result-set to the canonical one.

AI-powered recap

Quick recap quiz?

We'll generate 5 MCQs from this lesson and check your understanding instantly. Takes ~30 seconds.

Ready to move on?
// example library
Want more hands-on snippets in MySQL?
Browse 1 runnable example · across 1 chapter · short, copy-paste-friendly · grouped by topic
Explore examples
// side-by-side reference
See this in other languages
Compare the same concept across C, C++, Java, and Python — one table, zero tab-switching.
Compare Languages
// feedback.matters()
Did this lesson help you?