Блог

Две классные штуки MySQL 8

- Да у вас даже check-ов нет!

Обычно такая фраза звучит в очередном споре о том, что же лучше MySQL или PostgreSQL. И стоит сказать это справедливое замечание.
Действительно, в MySQL до версии 8 не было check сonstraints. Чисто формально синтаксис check при создании колонок в таблице поддерживался, но по факту никаких проверок не создавалось.
Это было сделано для того, чтобы облегчить миграцию с других СУБД, где check полноценно работал. И вот в 2019 спустя 15 лет (!) check появится в MySQL 8.0.15. Историю этого вопроса можно отследить по тикету в официальном баг-трекре MySQL - https://bugs.mysql.com/bug.php?id=3464 Основной причиной почему так долго пилили называют полную переделку "Data dictionary", котороую сделали только в 8.0 и без которой реализация check невозможна.

Еще один пункт, за который любят пинать MySQL - отсутствие параллельных запросов. Но и тут начались подвижки в версии 8.0. Пока параллельно выполняться могут только запросы вида "SELECT count(*)....", но это только начало. Подробнее в блоге Percona - https://www.percona.com/blog/2019/01/23/mysql-8-0-...