Будущее MySQL было неопределенным с тех пор, как Oracle приобрела Sun Microsystems в апреле 2009 года . К счастью, все, кто сомневался в намерениях компании, могут немного расслабиться: выпущен MySQL 5.5 .
В MySQL 5.5 были высказаны впечатляющие претензии, и вы найдете отчеты с подробным описанием улучшений скорости до 4000%. Возьмите те с большим количеством соли, но вы можете ожидать, что версия 5.5 будет быстрее.
Давайте подробнее рассмотрим лучшие из новых функций …
InnoDB становится механизмом хранения по умолчанию
Пора. Есть много , много , много причин, почему InnoDB является лучшим выбором для большинства приложений, но MyISAM до сих пор оставался по умолчанию. Начиная с MySQL 5.5, разработчики получат встроенную надежность и стабильность благодаря транзакциям, совместимым с ACID, поддержке внешнего ключа и восстановлению после сбоев.
Кроме того, новейшая система хранения InnoDB обеспечивает лучшую производительность, масштабируемость и восстановление после катастрофического сбоя.
Лучшая доступность
Производительность была улучшена в многосерверных реплицированных системах с:
- Полусинхронная репликация
Для повышения надежности аварийного переключения ведущий может подождать, пока хотя бы одно ведомое устройство зарегистрирует транзакцию. - Репликация сердцебиения
Ведущий отправляет сообщение всем подчиненным узлам с частыми интервалами. Следовательно, ведомые устройства знают, когда мастер вышел из строя, и это помогает оценить задержку между обновлениями главного и подчиненного устройств.
Новая команда LOAD XML
LOAD XML читает данные из файла XML в таблицу. Поддерживаются три разных формата:
<row column1="value1" column2="value2" .../>
или
<row>
<column1>value1</column1>
<column2>value2</column2>
</row>
или
<row>
<field name="column1">value1</field>
<field name="column2">value2</field>
</row>
Новые команды SIGNAL / RESIGNAL
Обе команды позволяют реализовать обработку исключений в хранимых процедурах, функциях, событиях, триггерах.
SIGNAL — это то же самое, что команда throw в PHP и других языках. Это позволяет вам возвращать номер ошибки, значение SQLSTATE и сообщение в вызывающий код.
RESIGNAL позволяет распространять исключение SIGNAL, возможно, после дальнейшей работы, такой как очистка данных. RESIGNAL может передать оригинал или измененную версию ошибки.
Новая функция TO_SECONDS ()
Обработка дат и времени не всегда так проста, как вы ожидаете. Файловая система, интерпретатор PHP и сама MySQL имеют разные методы хранения времени, поэтому многие разработчики используют метку времени UNIX или другие целочисленные форматы.
TO_SECONDS () может помочь решить некоторые проблемы; учитывая любое значение даты или даты и времени, он возвращает количество секунд, начиная с года 0 (или NULL, если вы передаете любое другое значение).
Сменная Аутентификация
До сих пор клиент, подключающийся к серверу MySQL, должен был передавать имя пользователя и пароль, которые были аутентифицированы по записи в таблице mysql.user. Теперь возможно создать плагин, который обрабатывает аутентификацию, используя ваши собственные системы и учетные данные.
Улучшена производительность в Windows
Многие предприятия устанавливают MySQL на серверах Windows. Это часто имеет смысл; у них уже есть ИТ-администраторы с опытом работы с Windows, но им нужно экономичное решение для баз данных или они хотят установить веб-приложение, для которого требуется MySQL.
Команда разработчиков MySQL привела систему в порядок и улучшила производительность на платформах Win32 и Win64.
Вы оценили MySQL 5.5? Вы испытали какой-либо прирост производительности? Будете ли вы обновляться? Релиз 5.5 убедил вас в приверженности Oracle работе с базой данных?