После двух лет разработки компания Oracle объявила о выходе первого стабильного релиза СУБД MySQL 5.5.8.
Ключевые улучшения MySQL 5.5:
* Улучшение производительности и масштабируемости (по сравнению с веткой MySQL 5.1 производительность смешанных операций записи/чтения возросла в 3.6 раза, а операций только чтения - в 2 раза);
* Использование по умолчанию движка InnoDB;
* Поддержка полусинхронного (semi-synchronous) механизма репликации, основанного на патчах к InnoDB от компании Google. Метод является разумным компромиссом между надежностью синхронной репликации и скоростью асинхронной. Новый режим гарантирует распространение изменений как минимум на один slave узел, т.е. репликация считается успешной если хотя бы один узел подтвердил принятие данных;
* Поддержка создания отказоустойчивых конфигураций из нескольких синхронизированных серверов, базирующихся на использовании Heartbeat и DRBD; * Реализация операторов SIGNAL и RESIGNAL - новых способов обработки ошибок в функциях, триггерах и обработчиках событий;
* Улучшение функций по партицированию данных. Расширенный синтаксис для разбиения больших таблиц на несколько частей, размещенных в разных файловых системах (partitioning). Добавлены операции RANGE, LIST и метод оптимизации "partition pruning";
* Новый механизм оптимизации вложенных запросов и JOIN операций, повышающий скорость выполнения некоторых запросов на 90%;
* Переработана система внутренних блокировок. Интегрированы патчи Google с оптимизацией работы InnoDB на CPU с большим числом ядер. Например, на 16 и 64 ядерных серверах наблюдается почти двойной прирост производительности. Ранее код InnoDB не мог корректно использовать более 4 CPU;
* Включение в MySQL схемы производительности, которая содержит низкоуровневую информацию о производительности работы движка InnoDB.
* Указание типа хранилища через ключевое слово "TYPE" в блоке "CREATE TABLE" объявлено устаревшим, необходимо использовать директиву "ENGINE";
* Улучшены средства работы с XML-данными, добавлен оператор "LOAD XML";
* Улучшения в управлении метаданными при выполнении транзакций;
* Новый алгоритм формирования запроса, более оптимально использующий оперативную память для выполнения JOIN операций при использовании MySQL Cluster;
* Улучшена реализация встраиваемых процедур, добавлены полноценные средства для управления ошибками через реализацию SIGNAL/RESIGNAL функций;
* Добавлена поддержка задания параметров вывода при использовании заранее подготовленных выражений (prepared statement);
* Расширены возможности по доступу к данным информационной схемы для разработчиков, использующих программные интерфейсы подобные ODBC и JDBC. Например, расширен доступ к параметрам и возвращаемым типам данным, которые используются в хранимых процедурах;
* Улучшена поддержка платформы Solaris, расширены средства диагностики, базирующиеся на DTrace;
* Переход на систему сборки на основе CMake, поддержка сборки при помощи GNU autotools прекращена (вместо configure теперь нужно выполнить "cmake .") .
Одно найти легче, чем другое. Спойлер: это не темная материя