PHP программист
0,0
рейтинг
6 февраля 2013 в 08:44

Разработка → Анонсирован стабильный релиз MySQL 5.6

5 февраля компания Oracle анонсировала выпуск стабильного релиза MySQL версии 5.6. В новой версии проделана огромная работа. Основные усилия были направлены на повышение производительности, масштабируемости и гибкости. Масштабным по значимости изменениям подвергся движок InnoDB.

К ключевым улучшения можно отнести: поддержка средств полнотекстового поиска, возможность доступа к данным через memcached API, увеличена производительность работы при интенсивной записи данных, а также увеличена масштабируемость при обработке большого числа одновременных запросов.

Еще одним новшеством версии 5.6 является возможность исполнения DDL-операций (Data Definition Language) без перевода СУБД в офлайн и прерывания доступа к таблицам. Администраторы получают возможность производить операции связанные с сбросом схемы, добавлением или удалением столбцов данных или переименованием столбцов без отключения СУБД. Ранее подобные возможности были доступны только в NoSQL-продуктах.

В сравнении с версией 5.5 новинка теперь может работать на 48-ядерных серверах, против 32-ядерных в MySQL 5.5

Немного подробнее о ключевых возможностях:

  • Реализован интерфейс для прямого доступа к таблицам InnoDB в стиле NoSQL-систем с использованием API, манипулирующего парами ключ/значение и совместимого с memcached.
  • Появилась возможность создания в InnoDB полнотекстовых индексов для организации быстрого поиска по словоформам среди текстового контента, хранимого в таблицах InnoDB. Ранее полнотекстовый поиск был доступен только для таблиц MyISAM.
  • Повышение эффективности оптимизатора запросов, оптимизация процесса выбора результирующего набора значений, сортировки и выполнения запроса. Новые оптимизации Index Condition Pushdown (ICP) и Batch Key Access (BKA) позволяют до 280 раз увеличить пропускную способность выполнения некоторых запросов. Увеличена эффективность выполнения запросов вида «SELECT… FROM single_table… ORDER BY non_index_column [DESC] LIMIT [M,]N;». Увеличена производительность запросов «SELECT… LIMIT N» выводящих только часть строк из большой выборки.
  • Расширены средства диагностики работы оптимизатора, добавлена поддержка EXPLAIN для операций INSERT, UPDATE и DELETE. Результаты работы EXPLAIN теперь могут быть выведены в формате JSON. Новый режим трассировки оптимизатора позволяет проследить за каждым принятым решением в процессе оптимизации запроса.
  • Дополнительные оптимизации выполнения подзапросов, при которых вложенные запросы вида «SELECT… FROM table1 WHERE… IN (SELECT… FROM table2 ...))» транслируются в более оптимальное представление на стадии до непосредственного выполнения запроса, например, заменяются на более эффективный JOIN.
  • Расширение реализации системы диагностики PERFORMANCE_SCHEMA, предоставляющей низкоуровневые средства для мониторинга за выполнением запросов и различными событиями при работе СУБД. PERFORMANCE_SCHEMA позволяет детально оценить узкие места при выполнении длительных запросов, а также представить сводную статистику, сгруппированную по запросам, нитям, пользователям, хостам и объектам.
  • Улучшена реализация движка InnoDB, отмечается рост производительности при выполнении транзакций и при активности с преобладанием операций чтения данных — в некоторых ситуациях ускорение достигает 230%.
  • Режим отложенной репликации, позволяющий реплицировать данные не сразу, а с определённой задержкой, что позволяет обеспечить защиту от ошибок оператора (например, случайное удаление содержимого таблиц).
  • Увеличение максимального размера файлов с логами изменений (InnoDB Redo Log) с 4 Гб до 2 Тб.
  • Улучшение безопасности: поддержка указания параметров аутентификации в файле .mylogin.cnf в зашифрованном виде; добавление плагина sha256_password для хранения хэшей паролей с использованием алгоритма SHA-256; добавление в таблицу mysql.user поля со временем истечения действия пароля; новая SQL-функций VALIDATE_PASSWORD_STRENGTH() для оценки надёжности пароля.
  • Поддержка запуска сервера в режиме только для чтения (опция --innodb-read-only, только для InnoDB).
  • Поддержка указания дробных значений секунд в функциях TIME, DATETIME и TIMESTAMP для указания микросекунд.
  • Прекращена поддержка опций "--log", "--log-slow-queries", "--one-thread", "--safe-mode", "--skip-thread-priority", "--table-cache".

Более подробно ознакомится с новшествами вы можете на соответствующей странице.

В связи с данным релизом становится более интересным соперничество MySQL и MariaDB, которая в последнее время стремительно вытесняет MySQL из дистрибутивов. На данный момент это произошло в Fedora и OpenSUSE.

Страница загрузки
MySQL 5.6 Reference Manual
Роман @Sky4eg
карма
35,0
рейтинг 0,0
PHP программист
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (22)

  • –9
    На сколько % опять упала производительность?
    Какой объём кода и тестов исчез из Open Source?
    Сколько свежих критических багов добавлено?

    Ждём месяцок, думаю первые маты полезут.
  • –10
    Имхо MySQL 5.6 не нужен, слишком много проблем с этим «наследием». Есть грамотные Percona/Maria со всеми плюшками. Полнотекстовый поиск оставить за Sphinx т.к. каждый должен заниматься своим делом.
    • +19
      А я бы с радостью отказался от Sphinx, если бы MySQL это делал не хуже.
      • 0
        Sphinx кстати не дурно работает как NoSQL, есть реальные примеры.
      • +27
        Не поверишь: если бы кто-то делал поиск не хуже, я бы в своем время тупо не начал писать Sphinx. ;)
    • 0
      надо не забывать что Percona/Maria всего лишь форки основного движка…
      добавлены/заменены на другие хранилища,
      ну в перконе добавлены средства мониторинга…
      • –1
        Убунта форк Дебиана, а Фаерфокс форк Мозиллы. Форк — это ответвление и ничего не мешает пойти своим путём. MariaDB пилят версию 10.0, чтобы показать насколько далеко они готовы зайти.
      • 0
        Посмотрите, что стало с OpenOffice и его клоном.
        Поэтому «всего лишь» говорить некорректно.
  • +3
    Администраторы получают возможность производить операции связанные с сбросом схемы, добавлением или удалением столбцов данных или переименованием столбцов без отключения СУБД. Ранее подобные возможности были доступны только в NoSQL-продуктах.

    Ну прямо-таки «только в NoSQL-продуктах». В той же Oracle DB и в некоторых других RDBMS есть такая возможность.
    • +2
      А я вообще не понял о чём это. Что ALTER TABLE была блокирующая команда, а теперь не блокирующая?
      • +9
        Раньше alter table для innoDB производила полное копирование таблицы и затем удаляла старую копию. При этом, блокировались вся запись в эту таблицу.
        Например, повесить дополнительный индекс на развесистую таблицу — и на сколько-то часов таблица доступна только на чтение.
        • 0
          Вот что меня смутило. В посте говорится о переводе всей базы (не одной таблицы) в оффлайн, хотя по факту блокируется только запись в таблицу.
          • 0
            во время alter'а на тип — чтение тоже в блоке
            • +1
              Но всё равно одной таблицы и не требуетя останавливать всю базу, как можно подумать по посту.
              • +1
                Думаю, что имелось ввиду не «без отключения СУБД», а «без отключения от СУБД» т.е. «без остановки приложения, на котором эта СУБД рабтает». В любом случае, изменение таблицы, из которой идёт постоянное чтение и в которую идёт постаянная запись раньше требовало экслюзивного доступа к таблице, сейчас же всё можно сделать не прекращая работу приложения.
  • +4
    Если все будут ждать, то баги никогда и не уберут. Я на этой неделе целенаправленно обновлю mysql.
    • +4
      На прод? (:
    • –3
      поистине один из крези
  • 0
    Интересно, query cache в партицированные таблицы вернут?
    • +2
      зачем?
  • +1
    Ждем MariaDB 10 stable :)
  • +2
    Разработчики как в воду смотрели, сделали много полезного. Прекрасная новость. Спасибо.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.