MyISAM vs Innodb

Стоит ли переходить с MyISAM на Innodb?

 
Посетитель
small user social cms
Медаль
Сообщений: 256
Кто что думает? Скорость инсертов и селектов против псевдонадежности.
Sometime CMS Community
Посетитель
no avatar
Сообщений: 78
Имхо если не нужны хранимые процедуры и блокировки полей при записи, ну или там распределение базы по дискам, то иннодб не нужен. Сервер сетапишь?
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 256
для instant
Sometime CMS Community
Посетитель
no avatar
Сообщений: 78
Я за скорость. А надежность - в кроне бекап настроить на каждые полчаса и на сотню архивов - вот и будет резерв на пару суток.
Sometime CMS Community
Посетитель
no avatar
Медаль
Сообщений: 101
Ну во первых: при записи myisam лочит всю таблицу, в отличие от innodb
во-вторых: настроить бэкап на каждые полчаса это бред полный, а что будите делать когда база будет размеров этак гигов 20-30? и это вполне реально.

также в innodb есть поддержка транзакций и внешних ключей.
Sometime CMS Community
Посетитель
no avatar
Сообщений: 78
Бред - у тебя в голове. У нас в биллинговой системе бекап каждые полчаса и все отлично работает. Подробностей не знаю, может реплик, может еще как, но это - факт. Хорошо, у него не биллинг, инфа может не связана с деньгами. Ну так раз в 6 часов бекапить, раз в 12, раз в сутки. Если сервер рухнет, то имхо, все равно какая там структура... Кроме локов и транзакций (про которые я уже писал выше) никаких преимуществ нет. А самое главное, что ИНСТАНТ не использует все эти преимущества. Зачем заморачиваться?
Sometime CMS Community
Посетитель
no avatar
Медаль
Сообщений: 101
wordwild, а вы чего такой нервный, зачем переходить на личности? Вам предупреждение.

Также основные преимущества заключаются и во внешних ключах, которые обеспечивают актуальность и целостность взаимосвязанных данных разных таблиц.

Хотя да, что об этом говорить, всё равно инстанта это не касается.
Sometime CMS Community
Посетитель
no avatar
Сообщений: 78
bibendi:
wordwild, а вы чего такой нервный, зачем переходить на личности?
Я не нервный - я импульсивный. А бекапить можно не точно раз в какой-то промежуток времени, а вообще в реальном времени. Вотъ.
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4385
Ну так кто-нибудь может популярно объяснить MyISAM vs Innodb в контексте инстанта?
Все-таки лайвстрит, битрикс, может еще что использует Innodb...
И если
bibendi:
Хотя да, что об этом говорить, всё равно инстанта это не касается.
как сделать чтобы касалось.
В общем хотелось бы услышать более менее объективный ответ.
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Sometime CMS Community
Посетитель
no avatar
Медаль
Сообщений: 428
может я смогу вставить 5 копеек по этому вопросу например есть база и мы делаем 1000 запросов к ней на вставку данных, получаем следующее....
InnoDB, в отличие от MyISAM версионный движок с блокировками уровня строки. Это означает, с одной стороны, что операции с ним требуют бОльших накладных расходов, так что, при прочих равных, 1 000 вставок в InnoDB будут проводиться медленнее, чем 1 000 вставок в MyISAM, с другой же стороны, это означает, что при конкурентной смешанной (INSERT-UPDATE-DELETE/SELECT) нагрузке, первые типы запросов не будут блокировать вторые и друг-друга (если, конечно, относятся к разным записям).
То есть подведя итог применительно к инстант если вы планируются очень большие объемы данных(миллионы записей), с постоянным добавлением и параллельной выборкой данных то стоит однозначно использовать InnoDB для обеспечения независимости работы всей системы, если нет такой надобности в объеме записей базы тогда юзайте
MyISAM.
Посетитель
small user social cms
Медаль
Сообщений: 763
Вот цитата из описания таблиц InnoDB:
Код PHP:
  1. InnoDB предназначается для получения максимальной производительности при обработке больших объемов данных. По эффективности использования процессора этот тип намного превосходит другие модели реляционных баз данных с памятью на дисках.
  2.  
  3. Технически InnoDB является завершенной системой управления базой данных в рамках MySQL. В InnoDB есть свой собственный буферный пул для кэширования данных и индексов в основной памяти. Таблицы и индексы InnoDB хранятся в специальном пространстве памяти, которое может состоять из нескольких файлов. В этом заключается отличие InnoDB от, например, таблиц MyISAM: каждая таблица MyISAM хранится в отдельном файле. Таблицы InnoDB могут быть любого размера даже в тех операционных системах, где установлено ограничение файла в 2 Гб.
  4.  
  5. ...
  6.  
  7. В настоящий момент (октябрь 2001 года) таблицы InnoDB применяются на нескольких больших сайтах баз данных, для которых важна высокая производительность. Так, таблицы InnoDB используются на популярном сайте новостей Slashdot.org. Формат InnoDB применяется для хранения более 1Тб данных компании Mytrix, Inc; можно привести пример еще одного сайта, где при помощи при помощи InnoDB обрабатывается средняя нагрузка объемом в 800 вставок/обновлений в секунду.
  8.  
  9.  
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4385
wordwild:
А самое главное, что ИНСТАНТ не использует все эти преимущества.

bibendi:
Хотя да, что об этом говорить, всё равно инстанта это не касается.

Как понять эти высказывания?
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Медаль
Сообщений: 763
Насколько я понимаю, не использует эти преимущества, имеется ввиду, что аппарат транзакций не используется. Но это думаю и не нужно. А вот блокировка на уровне записи используется таблицами автоматом и никаких дополнительных телодвижений не нужно делать.
В то же время цитата из описания MyISAM-таблиц
Код PHP:
  1. При помощи команды INSERT можно вставлять новые строки в таблицу, в середине файла данных которой нет свободных блоков, в то время как другие потоки считывают из таблицы информацию (совмещенная вставка). Свободный блок может быть получен при обновлении строки с динамической длиной, когда большее количество данных заменяется меньшим количеством или при удалении строк. Когда свободных блоков не остается, все последующие блоки снова будут вставляться как совмещенные.
  2.  
То есть один процесс вставляет информацию в таблицу, а другие в это время считывают информацию из этой же таблицы. Не понятно, а где же тогда применяется блокировка таблицы или я неправильно понимаю текст этого описания?

А вот в другом источнике советы:
Код PHP:
  1. Innodb следует использовать:
  2. Когда взаимодействие с базой имеет характер OLTP (http://ru.wikipedia.org/wiki/OLTP)
  3. Когда требуются транзакции.
  4. Когда нужна высокая надежность хранения и быстрое восстановление после сбоя.
  5. Innodb хорошо справляется со смешанной нагрузкой (select/update/delete/insert).
  6.  
  7. Минусы Innodb:
  8. могут возникать deadlock, не свойственные MyISAM;
  9. Медленнее выполняются insert операции и работа с блобами;
  10. Не поддерживается полнотекстовый поиск;
  11. Проблемы с производительностью COUNT(*);
  12. Для Innodb нет поддержки mysqlhotcopy;
  13.  
  14. С MyISAM есть одна нехорошая проблема, таблица может на ровном месте отказаться
  15. работать до выполнения REPAIR TABLE.
  16. Случается такое крайне редко, но и этого хватает. Пример: http://blog.lexa.ru/2008/10/05/vash_mysql___to_esche_g.html
  17. Поэтому с для MyISAM рекомендуется организовать периодический запуск mysqlcheck через cron.
  18.  
  19. Из-за особенности организации блокировки (в MyISAM блокировка на уровне
  20. таблицы, в Innodb - на уровне строк),
  21. MyISAM имеет смысл использовать, когда преобладают операции insert или select,
  22. но крайне мало delete или update.
  23. Когда можно обойтись без транзакций.
  24. Когда выполняются запросы, характерные для OLAP
  25. (http://ru.wikipedia.org/wiki/OLAP)
  26. Когда таблица используется для хранения лога (поддержка конкурирующих insert);
  27. Когда много запросов вида Select count(*).
  28. Когда нужно задействовать средства полнотекстового поиска.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.