1.11.2.1 Стратегии развития MySQL и PostgreSQL
Расширяя возможности MySQL мы всегда стараемся принять оптимальное
решение. Код должен быть настолько хорош, чтобы в обозримом будущем в нем
не понадобилось ничего менять. Кроме того, мы не считаем целесообразным
ради расширения возможностей приносить в жертву скорость, а вместо этого
стараемся в каждом случае обеспечить максимально возможную
производительность. В итоге несколько увеличивается время разработки, но
результаты того стоят. Разработка в таком ключе возможна потому, что все
новые фрагменты серверного кода перед включением в состав MySQL
проверяются несколькими разработчиками.
Мы считаем, что лучшим средством предоставления нашим пользователям новых
возможностей является частый выпуск новых версий. Поэтому примерно раз в
три недели у нас выходит несколько обновленная версия системы, а раз в
год - полностью новая. Все версии проходят полное тестирование с помощью
наших инструментальных средств на множестве платформ.
Система PostgreSQL основана на ядре, созданном множеством разработчиков. В
подобных случаях разумно сосредоточиться на оснащении системы новыми
возможностями, но не заниматься оптимальным их воплощением, так как в
случае возникновения необходимости всегда можно будет вернуться к
оптимизации соответствующих участков кода.
Еще одно значительное отличие MySQL от PostgreSQL заключается в
том, что практически весь содержащийся в MySQL код создан разработчиками,
работающими в MySQL AB и постоянно занятыми совершенствованием кода
сервера. Исключением из этого правила являются системы транзакций и
библиотека регулярных выражений regexp
.
Большая же часть кода PostgreSQL написана множеством разработчиков, никак
друг с другом не связанных. Не так давно разработчики PostgreSQL объявили
о том, что у их команды наконец-то хватило времени на просмотр всего кода,
вошедшего в состав очередной версии PostgreSQL.
У обоих вышеупомянутых методов разработки есть достоинства и недостатки.
Мы, сотрудники MySQL AB, разумеется, считаем, что наша модель лучше, так
как обеспечивает большую логичность кода, оптимальность и возможность его
повторного использования, а также - меньшее количество ошибок. Будучи
авторами кода сервера MySQL, мы с большим успехом можем координировать
включение в систему новых возможностей и выход ее новых версий.