Этот раздел отвечает на вопросы «Насколько стабилен сервер MySQL?» и «Можно ли положиться на MySQL в этом проекте?». Мы попытаемся прояснить это, а также ответить на некоторые важные вопросы, которые касаются множества потенциальных пользователей. Информация, представленная в этом разделе, основана на данных, собранных из списков рассылки и писем пользователей, которые проявляют завидную активность при обсуждении проблем и способов их решения.
Основной программный код был разработан в начале восьмидесятых годов прошлого века. Он обеспечил стабильную базу и поддерживал формат таблиц ISAM, используемый оригинальным механизмом хранения, который остается обратно совместимым и по сей день. В ТсХ, компании-предшественнице MySQL AB, код MySQL без проблем работал в проектах, начиная со средины 1996 года. Когда программное обеспечение MySQL
впервые было представлено широкой публике, пользователи быстро нашли фрагменты, которые не был протестированы. Каждая новая реализация с тех пор имела все меньше и меньше проблем переносимости, несмотря на то, что в каждой из них также добавлялось множество новых возможностей.
Каждый выпуск сервера MySQL была работоспособным. Проблемы возникали только тогда, когда пользователи имели дело с кодом из так называемых «серых зон». Естественно, новые пользователи не знают, что это за зоны, поэтому в настоящем разделе мы попытаемся документировать те из них, которые известны в настоящий момент. Это описание в большей степени касается версий MySQL 3.23 и MySQL 4.O. Все известные и документированные ошибки в последней версии были исправлены, за исключением тех, что перечислены в разделе ошибок, имеющих отношение к собственно проекту (см. раздел 1.8.7).
Проект MySQL построен по многоуровневому принципу с независимыми модулями. Некоторые из новейших модулей перечислены ниже с указанием того, насколько хорошо они были протестированы.
- Репликация (гамма-версия).
- Таблицы InnoDB (стабильная версия).
- Таблицы BDB (гамма-версия).
- Полнотекстовый поиск (гамма-версия).
- Connector/ODBC 3.51 (стабильная версия).
- Автоматическое восстановление таблиц MyISAM (гамма-версия).
Большая группа серверов, использующих репликацию, показали хорошие результаты во время производственной эксплуатации. В MySQL 5.x продолжается работа над расширенными средствами репликации.
Транзакционный механизм хранения был объявлен стабильным в дереве выпусков MySQL 3.23, начиная с 3.23.49. Таблицы InnoDB используются в больших, сильно загруженных производственных системах.
Код Berkley DB очень стабилен, однако совершенствование интерфейса транзак-ционного механизма хранения BDB в сервере MySQL продолжается, поэтому еще пройдет некоторое время, прежде чем модуль обслуживания таблиц BDB можно будет объявить настолько же тщательно протестированным, как и соответствующие модули для других типов таблиц.
Полнотекстовый поиск работает, но пока широко не используется. В версию MySQL 4.0 были внесены важные усовершенствования.
Connector/ODBC 3.51 использует комплект ODBC SDK 3.51 и широко применяется в производственных системах. Некоторые его выпуски зависимы от приложений и не зависят от ODBC-драйвера или лежащего в основе сервера баз данных.
Состояние «гамма» касается только нового кода в механизме хранения MyISAM, который при открытии таблиц проверяет, были ли они правильно закрыты и, если нет, выполняет автоматическую проверку и восстанавливает их.