Пришло время MySQL 5.4
25.04.2009

Всего через три месяца после MySQL 5.1.

Одновременно с шумной покупкой софтверным гигантом Oracle компании Sun Microsystems, на конференции MySQL в Санта-Кларе была представлена предварительная версия MySQL 5.4.

Sun представила MySQL 5.1 совсем недавно, в октябре 2008 года, и едва ли многие могли ожидать нового релиза через столь малый промежуток времени.

Крупнейшим улучшением в MySQL 5.4 является масштабируемость. Это был определенно необходимый шаг для поддержания конкурентоспособности с Oracle 11g, DB2, SQL Server, Sybase и Informix. MySQL является общепринятой в веб и, вероятно, наиболее популярной СУБД в истории: более 100 миллионов скачанных копий. Однако Sun пока не слишком хорошо удается превратить очевидный успех продукта в деньги.

Корпоративные клиенты любят большие СУБД, а вовсе не составленные из малых кластеры: ими проще управлять. Ограниченная масштабируемость MySQL вытесняет его в область малых баз или кластерных сред, и результате звонкая монета протекает мимо.

Sun заявляет, что MySQL 5.4 способен масштабироваться до 16 ядер (или тредов на системах с гипертредингом) на системах x64, и до 64 ядер (тредов) на архитектуре Sparc. В нынешней версии MySQL 5.1 используется движок InnoDB, способный использовать лишь 4 ядра.

Четыре ядра - это определенно мало для большой нагрузки и совершенно не соответствует современному серверному железу. Новый двухсокетный сервер на Xeon 5500 "Nehalem EP" содержит 8 ядер и 16 тредов. Система Sun Sparc T Niagara на процессоре T2+ "Victoria Falls" может содержать 8 ядер по 64 треда, в сумме 256 тредов в одной системе. У AMD Opteron нет мультитрединга, зато MySQL 5.4 сможет использовать вся ядра в четырехсокетной архитектуре серверов "Shanghai".

Робин Шумахер (Robin Schumacher), директор MySQL в Sun, опубликовал результаты внутренних тестов MySQL 5.4. Шумахер утверждает, что использование дополнительных тредов в MySQL 5.4 дает существенный прирост производительности: около 59% на архитектуре x64 и 71% на Niagara с 64 тредами против 32 в предыдущей версии. Время отклика улучшилось драматически, до 90% в некоторых тестах.

Разумеется, для соперничества с Oracle или DB2 в MySQL потребовалось бы обеспечить поддержку более 1024 тредов, но вряд ли подобная идея найдет поддержку в Oracle. Скорее в Oracle готовы согласится на MySQL как альтернативу Standard Edition One, способному работать на двухсокетных серверах максимум.

Шумахер утверждает, что Sun (а теперь Oracle) будет выпускать регулярные и более частые релизы MySQL.

В MySQL 5.4 содержится еще несколько нововведений. Добавлен алгоритм многофакторного объединения в основной памяти и различные оптимизации подзапросов. В результате время выполнения отдельных тестов сократилось с десятков минут до пары секунд. Улучшено использование DTrace, утилиты для низкоуровневого мониторинга MySQL на Solaris 10. Усовершенствована обработка ошибок в хранимых процедурах.

При этом новый транзакционный движок Falcon в версию MySQL 5.4 не включен.

Предварительный релиз MySQL 5.4 сейчас доступен только в вариантах для Linux и Solaris 10. Финальная версия должна будет выйти в этом году, если Oracle не вмешается в планы. Релиз будет подготовлен для Red Hat Enterprise Linux, SUSE Linux Enterprise, Ubuntu и другие Linux, Windows, Mac OS X, FreeBSD Unix, IBM AIX и i5/OS.

Sun обещает объявить дату финального релиза, как только получит "достаточный" отклик публики на предварительную версию.