Правильно ли я, что InnoDb лучше подходит для частых одновременных обновлений и вставок, чем MyISAM?

У нас есть веб-сайты с сотнями посетителей каждый день и десятками тысяч запросов в день. Таким образом, некоторые таблицы в базе данных обновляются очень редко, некоторые таблицы обновляются несколько раз в минуту, а некоторые таблицы обновляются ~ 10 раз в секунду.
MyISAM использует блокировку на уровне таблиц для обновлений, а InnoDb использует блокировку на уровне строк.
Итак, насколько я понимаю, для таблиц с частыми одновременными обновлениями (несколько обновлений в секунду) лучше сделать их InnoDb, а для других таблиц (если нам не нужны транзакции и внешние ключи конечно) это нормально быть с движком MyISAM.
Я прав в своих мыслях?


person nightcoder    schedule 12.11.2009    source источник


Ответы (2)


MyISAM быстрее выполняет чтение и запись, но не одновременно. Другими словами, если вам нужно много писать, это будет быстрее, но если вы хотите, чтобы люди читали одновременно, читатели и писатели будут блокировать друг друга, и у вас могут быть проблемы с параллелизмом. Вы должны использовать InnoDB в таких сценариях, и большинство гуру mysql в любом случае рекомендуют использовать InnoDB по умолчанию, потому что в целом он считается более надежным, чем MyISAM, несмотря на то, что в некоторых случаях он работает медленнее.

person ʞɔıu    schedule 12.11.2009
comment
Да, я забыл упомянуть, что я имею в виду, конечно, КОНКУРЕНТНЫЕ обновления. Спасибо за ваш ответ. - person nightcoder; 12.11.2009

Да, я так считаю. Я сам новичок в MySQL, но когда я его установил, он объяснил, что innoDB оптимизирован для транзакционных, операционных систем, а MyISAM отлично подходит для систем отчетов / DW.

person Rich    schedule 12.11.2009