Прав ли я, что InnoDb лучше для частых одновременных обновлений и вставок, чем MyISAM? - PullRequest
2 голосов
/ 12 ноября 2009

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

Ответы [ 2 ]

6 голосов
/ 12 ноября 2009

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

0 голосов
/ 12 ноября 2009

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

...