Изменение в поведении MariaDB 11 — и оно на самом деле не баг, а следствие того, что с точки зрения SQL порядок строк без ORDER BY никогда не был гарантирован.
В MariaDB 10 часто совпадало, что строки шли в «естественном» порядке вставки, но это было побочным эффектом реализации движка (InnoDB), а в MariaDB 11 внутренние алгоритмы DISTINCT и оптимизация запросов изменились — и порядок теперь может быть «рандомным».
SQL-стандарт говорит: если нет ORDER BY, то порядок не определён.
DISTINCT сначала строит временную таблицу или хэш, а потом выдаёт строки — и внутренний порядок зависит от оптимизатора и хэш-функции.
В MariaDB 11 переписали оптимизацию DISTINCT, поэтому исчез «эффект вставочного порядка». Что привело при обновлении к этому, вместо нормы :)
PS. Это еще одна особенность, с которой пришлось бороться и искать причины удивительных явлений 🤣
Post #8
1.12K


- 😁 3
- 👍 1