1.4.3 Насколько стабильным является MySQL?
Этот раздел дает ответ на следующие вопросы ''Насколько стабильным
является MySQL?'' и ''Могу ли я положиться на MySQL в своем
проекте?'' Мы попытаемся внести ясность в эти проблемы, а также ответить
на некоторые важные вопросы, которые имеют значение для многих
потенциальных пользователей. Информация данного раздела базируется на
данных из списка рассылки, - наши пользователи очень активно сообщают нам
о выявленных проблемах и о своем опыте использования нашего ПО.
Самые первые версии кода были созданы в начале 80-х. Это был устойчивый
код с форматом таблиц ISAM
, обеспечивающим обратную совместимость с
предыдущими версиями. Во времена компании TcX, предшественника MySQL AB, с
середины 1986 года код MySQL работал в проектах без каких-либо проблем. Но
когда сервер MySQL был выпущен для широкого использования, оказалось, что
существует несколько фрагментов ``непротестированного кода''. Эти
фрагменты были быстро обнаружены новыми пользователями, которые составляли
запросы в несколько ином виде, чем мы.
С каждым новым релизом количество проблем, связанных с переносимостью,
уменьшалось (несмотря на то, что в каждом выпуске появлялось множество
новых возможностей).
Каждый релиз MySQL был рабочим, проблемы возникали только при
использовании кода из ``серых зон''. Естественно, что новые пользователи
не знают о том, где находятся такие ``серые зоны''; в данном разделе
сделана попытка описать те из них, которые известны на данный момент.
Большая часть описания относится к версии 3.23 MySQL-сервера. В самой
последней версии все известные ошибки устранены, за исключением тех,
которые перечислены в разделе ошибок, а также конструктивных дефектов.
See section 1.9.5 Известные ошибки и недостатки проектирования в MySQL.
Структура ПО MySQL является многоуровневой с независимыми модулями.
Некоторые из новейших модулей перечислены ниже, причем по каждому дается
информация о том, насколько хорошо он протестирован.
- Репликация - Gamma
-
Большие серверные кластеры, в которых применяется репликация, находятся в
промышленной эксплуатации и показывают хорошие результаты. Работа над
средствами репликации в MySQL 4.x продолжается.
InnoDB
-таблицы - стабильно (в 3.23 с 3.23.49)
-
Обработчик транзакционных
InnoDB
-таблиц объявлен в настоящее время
стабильными в дереве MySQL 3.23, начиная с версии 3.23.49. InnoDB
используется в больших промышленных системах с большой нагрузкой.
BDB
-таблицы - Gamma
-
Код
Berkeley DB
очень устойчив, но на настоящий момент продолжается
усовершенствование интерфейса обработчика транзакционных BDB
-таблиц с
MySQL, поэтому должно пройти некоторое время, пока он будет так же хорошо
протестирован, как и таблицы других типов.
Полнотекстовый поиск
- Beta
-
Полнотекстовый поиск работает, но широко не используется. В версии MySQL
4.0 реализованы существенные улучшения данной возможности.
MyODBC 2.50
(использующий ODBC SDK 2.5) - Gamma
-
Чрезвычайно широко используется. Как оказалось, некоторые из возникших
проблем являются зависящими от приложения, а не от ODBC-драйвера или
сервера баз данных.
- Aвтоматическое восстановление
MyISAM
-таблиц - Gamma
-
Статус Gamma относится только к новому коду в обработчике таблиц, который
проверяет правильность закрытия таблицы после ее открытия и выполняет
автоматическую проверку/восстановление незакрытой таблицы.
- Вставка больших объемов данных - Alpha
-
Новая возможность в
MyISAM
-таблицах в MySQL 4.0 для быстрой вставки
большого количества строк.
- Блокировка - Gamma
-
В большой степени зависит от системы. В некоторых системах возникают
большие проблемы с использованием стандартной для ОС блокировки
(
fcntl()
). В таких случаях следует запустить демон mysqld
с флагом
--skip-external-locking
. Известно, что проблемы имеют место в некоторых системах
Linux и в SunOS, когда используются NFS-монтированные файловые системы.
Несмотря на то, что высококвалифицированную поддержку MySQL AB
обеспечивает за плату, в списке рассылки MySQL обычно можно получить
ответы на часто возникающие вопросы. Ошибки обычно ликвидируются сразу же
при помощи патчей, а серьезные дефекты почти всегда устраняются в новом
выпуске.