Comments 41
Ну, кто-то все-таки заметил)
Успел 2 задачи сделать:
https://bugs.php.net/bug.php?id=76243 в mysql8 новый механизм аутентификации по умолчанию, запрос на поддержку в php.
https://bugs.mysql.com/bug.php?id=90529 установка в Centos из yum репозитория требует дополнительных телодвижений, чтобы корректно проинициализировались технические таблицы (схемы sys, mysql, performance_schema, information_schema)
Странно. Я еще с год назад юзал докер-образ с восьмеркой. Думал, что она уже давно зарелизилась
Выражения DDL стали атомарными и защищенными от падений, метаданные в транзакционной таблице.
То есть в предыдущих версиях падение во время выполнения DDL может всю БД сломать?
то же самое что внутри транзакции сделать update на таблице без поддержки транзакционных механизмов
А в mariadb.com/kb/en/library/recursive-common-table-expressions-overview есть пример на граф — нахождение всех маршрутов (с пересадками) из Нью-Йорка до Роли
* Решатель судоку
* Интерпретатор Brainfuck
С добавлением рекурсивных CTE, SQL стал полным по Тьюрингу
а еще check constraint есть
зато в марии json фейковый.
и чем дальше, тем больше они (эти две субд) будут отличаться.
Вообще тип — фигня, в MySQL просто медленный JSON парсер, и без бинарного json-а все ползало, а в MariaDB парсер побыстрей и ломать стандарт причины не было.
Из реально интересных штук — JSON_TABLE в 8.0. Этого в MariaDB нет. И json partial updates тоже интересная фича.
Выражения DDL стали атомарными и защищенными от падений, метаданные в транзакционной таблице.Из доков:
This means that DDL statements cannot be performed within another transaction, within transaction control statements such as START TRANSACTION… COMMIT, or combined with other statements within the same transaction.Раз менять DDL внутри транзакции по-прежнему нельзя, то, получается, команду можно поздравить разве что с тем, что фундаментальная функция БД теперь работает и больше не
/dev/null
.А есть ли какая-то информация, когда завезут поддержку
CHECK
вместо «парсится и молча игнорируется»?В свое время были вдохновляющие статьи про PHP 7.0 — 1, 2, 3 с бенчмарками. Про новый MySQL бы такое увидеть.
А то до этого как не старайся настроить, всё равно в разреженной таблице база пыталась писать по уже существующим id из-за чего было много не уловимых багов
На всякий случай рекомендую проверить пофиксили ли баг
https://toster.ru/q/471767
Это значит что можно накатывать пачку изменений на структуру БД в одной транзакции и при ошибке все скопом отменять rollback-ом?
NOWAIT and SKIP LOCKED — Запретить запросу ждать блокировку на уровне таблицы и на уровне отдельных строк, соответственно.Неудачная формулировка. Создается впечатление, что NOWAIT относится к уровню таблицы, а SKIP LOCKED — строк. Это не так.
SKIP LOCKED используюется для не детерминистического чтения из таблицы с пропуском строк, заблокированых другими пользователями.
NOWAIT — при наличии заблокированной строки не ждать освобождения блокировки innodb_lock_wait_timeout секунд, а сразу завершить выполнение запроса и вернуть ошибку:
ERROR 3572 (HY000): Do not wait for lock.
Есть хорошая статья Мартина Ханссона, перевод тут.
Никто и не заметил, как вышел MySQL 8.0