MySQL, хостинг и надежность

| | Comments (0) | TrackBacks (0)

Piom пишет про ValueHost:

«C недавних пор, очень часто начались лаги в работе сервера БД на котором хранятся наши данные, из-за этого большенство проектов просто выходили из строя. ... При общении с суппортом мы получали стандартное "исправим".»

Создается впечатление, что у VH или нет мониторинга MySQL ни в каком виде (во что я не готов поверить — размеры не те) или у конкретного пользователя проблемы сохраняются после решения их на глобальном уровне. Удивительно, но в MySQL при нештатном завершении работы сервера (например, из-за сбоя электропитания) отдельные таблицы могут выходить из строя.

Понятно, что у условно плохого хостера такие проблемы могут случаться три раза в день, а у условно хорошего — раз в три года, но, мне кажется, лучше иметь о них представление заранее.

Случаются они при использовании хранилища MyISAM (а обычно используют именно его). Дело в том, что в MyISAM нет транзакций, то есть, когда нужно изменить что-то в таблице, он берет и меняет это в файле таблицы, а потом меняет файл индекса. Если во время изменений процесс mysql умрет — после его перезапуска на все обращения к таблице будет получаться ошибка вида «Got error %d from storage engine».

Конформистское решение — быть готовым к проблеме, стараться ничего не писать в таблицы или делать так, что ошибки при работе с отдельными часто изменяемыми таблицами (ну, например, таблице сессий) не будут приводить к фатальной ошибке на всех страницах сайта. Если проблема случилась — как можно раньше (может быть даже автоматически, но только один раз) пытаться выполнить запрос REPAIR TABLE. Или, если права на MySQL этого не позволяют, писать письмо в службу поддержки.

Нонкорформистское — мигрировать на InnoDB. Этих проблем там нет. Есть другие, но они менее вероятны. InnoDB несовместим с MyISAM — там база данных будет по-настоящему реляционной, не будет иногда полезного INSERT DELAYED, да и до сих пор не все хостеры его поддерживают. Подробнее о различиях транзакционных и нетранзакционных хранилищ хорошо написано в документации по MySQL.

0 TrackBacks

Listed below are links to blogs that reference this entry: MySQL, хостинг и надежность.

TrackBack URL for this entry: http://www.ptitov.ru/mt/mt-tb.cgi/11

Leave a comment

About this Entry

This page contains a single entry by Pavel Titov published on October 28, 2007 11:48 PM.

Яндекс.Вебмастер бета was the previous entry in this blog.

Про делегирование обратных зон is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.01

Страницы