После двух лет разработки компания Oracle объявила о выходе первого стабильного релиза СУБД MySQL 5.5.8. Ветка MySQL 5.5 базируется на невыпущенной серии MySQL 5.4 и содержит ряд значительных улучшений, связанных с повышением масштабируемости и производительности. В анонсе компания Oracle подчеркнула свое намерение дальнейшего развития MySQL в качестве открытого продукта, развиваемого совместно с СУБД Oracle и нацеленного на обеспечения связанных с Web систем. Одновременной с enterprise-версией, доступна аналогичная по функциональности свободная редакция MySQL - MySQL Community Server 5.5.8, исходные тексты которой распространяются в рамках лицензии GPL.

Ключевые улучшения 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 .") .



Источник: http://www.opennet.ru/opennews/art.shtml?num=29009