MySQL był pisany raczej z myślą o szybkości niż kompatybilności ze standardem SQL – przez dłuższy czas MySQL nie obsługiwał nawet transakcji, co było zresztą głównym argumentem przeciwników tego projektu. MySQL obsługuje większą część obecnego standardu ANSI/ISO SQL (tj. SQL:2003). Wprowadza również swoje rozszerzenia i nowe elementy języka.
W wersji 5 dodano m.in.:
- procedury składowane (ang. stored procedures) – obecne od wersji 5.0,
- wyzwalacze (ang. triggers) – obecne od wersji 5.0.2
- widoki
- kursory – obecne od wersji 5.1
- partycjonowanie tabel – od wersji 5.1
- harmonogram zadań – od wersji 5.2
co zbliża najnowsze wersje MySQL do PostgreSQL pod względem funkcjonalności.
MySQL zawiera wsparcie dla replikacji bazy danych (w trybie master-slave i master-master) i wielojęzyczności – każda tabela i kolumna może mieć własne ustawienie kodowania znaków.
W wersji 5.6 wprowadzono kilka istotnych zmian poprawiających skalowalność i niezawodność środowiska oraz wprowadzających nowatorskie rozwiązania, np.:
- semi-synchroniczna replikacja
- replikacja wielowątkowa
- rozbudowane możliwości monitorowania przez tzw. PERFORMANCE_SCHEMA
- interfejs API typu NoSQL z wykorzystaniem memcached