Journal    Friends    Archive    User Info    memories
 

St. Hell - InnoDB vs. MyISAM


24 Июн, 2006 00:57 InnoDB vs. MyISAM

Недостатки InnoDB:
1. Скорость. Скорость падает примерно на 10% при случайном запросе.
2. Нагрузка на CPU. Выше, примерно на те же 10%.
3. Размер. Размер каждой таблицы значительно увеличивается.
4. Сложность "горячего" бэкапа. Для этих целей применяется платная программа - InnoDB Hot Backup. Т.е. сейчас, чтобы сделать бэкап базы, таблицы InnoDB полностью блокируются. На самом деле в нашем случае - это почти не является недостатком.
5. Слудеющии из блокироки строк "взаимоблокировки" и "фантомы". Очень опасное явление. В нашем случае могут быть.
6. Очень требовательны к оперативной памяти (а точнее размер буферного пула должен быть большим, а он как раз содержится в RAM), при малых объемах - большое количество обращений к диску и лавинообразное снижение скорости. Впрочем, для MyISAM не менее важен - key_buffer.
7. Для таблиц InnoDB не поддерживается команда INSERT DELAYED. В нашем случае не важно совершенно.
8. Отсутствие fulltext индексов, т.е. полнотекстный поиск, хотя и остается возможным, но уже не может похвастаться сколько-нибудь большой скоростью или низкой нагузкой на систему.
Преимущества InnoDB:
1. Скорость :). При одновременных записи и чтении - выигрывает, за счет того, что блокирует не таблицу, а строку. Так же, говорят, более эффективно использует индексы. Вставки при наличии индексов гораздо быстрее, бывает, что и на порядки.
2. Отказоустойчивость. Более отказоустойчивая :) Менее страшны непредвиденные перезагрузки. Использует логи для обеспечения контрольных точек. Возможность транзакций, что убирает логические противоречия.

В общем, это я к тому, что преобразовал, после восстановления базы на форуме самую большую таблицу ipb_posts в таблицу InnoDB. Пока работает вполне приемлемо.

Беру свои слова обратно, работает совершенно неприемлемо, простой перезапуск mysql просто убил эту таблицу :-0
Притом восстановить тоже уже нельзя, при перезапуске он переписал все бинарные файлы, и ibdata1, в котором таблица содержится (вроде как) и ib_logfile[0-9]
Хех, и дернул меня черт, опять же забыв про предварительный бэкап незадолго до следующего набрать service mysql restart ... Ну, опыт, впервые эта комманда оказалась смертельной... Притом, опять же, насколько я узнал, после этого, этой ошибки нету в mysql 5. По общечеловеческой привычке считать виноватым любого, кроме самого себя, назначаю виноватым hexem`а, работал бы аниме-сервак, этого бы не случилось ^_^

Метки:

Оставить комментарийPrevious Entry Add to Memories Tell A Friend Track New Comments Next Entry

Comments:

От:[info]uran
Дата:Июнь, 24, 2006 04:02 (UTC)
(ссылка)
Мдее....

А сервак и правда бака
От:[info]taiko
Дата:Июнь, 24, 2006 06:48 (UTC)
(ссылка)
=/