Основной выбор хранилища для веб-сайта - Myisam или Innodb?

Что было бы очевидным выбором в качестве механизма хранения для сайта типа Craiglist - MyIsam или InnoDb и почему?

Пожалуйста, объясните конкретные причины вашего предпочтения

На сайте типа Craigslist будет много чтений, а также записей, но, вероятно, больше чтений, поскольку многие люди приходили туда в поисках нужной информации (через поисковые системы), и им нечего было публиковать ... но просто нашли то, что они находясь в поиске...

Что бы вы сделали в таком случае Innodb или Myisam? Так как есть и чтение, и запись ..?


person user481913    schedule 26.04.2011    source источник
comment
Этот вопрос не по теме Stack Overflow. Я бы рекомендовал переместить его на веб-мастерам. См. FAQ по переполнению стека для получения дополнительной информации о том, что здесь по теме.   -  person the Tin Man    schedule 26.04.2011
comment
возможный дубликат В чем разница между MyISAM и InnoDB?   -  person Kzqai    schedule 12.01.2015


Ответы (3)


В условиях высокого уровня:

InnoDb

  • поддерживает транзакции
  • блокировка на уровне строк
  • поддерживает ограничения внешнего ключа
  • хорошая обработка рабочих нагрузок с большим количеством одновременных операций записи
  • безопасный при столкновении
  • блокировка на уровне строк позволяет избежать множества неприятных ситуаций блокировки

MySQL

  • Нет транзакций
  • Блокировка на уровне таблицы
  • поддерживает таблицы MERGE, которые могут быть полезны
  • Подходит для рабочих нагрузок, когда много операций чтения и не так много записей.
  • Не безопасен при столкновении
  • Блокировка на уровне таблицы может вызвать неприятные ситуации, когда выполняются медленные / некачественные запросы.

Для любого нового проекта, над которым я работаю сейчас, я почти определенно выбрал бы InnoDb. У вас меньше шансов на сбой вашего db, вы можете воспользоваться транзакциями и, если у вас есть приличный кусок оперативной памяти на сервере, на котором вы его размещаете (оперативная память настолько дешева в наши дни), тогда вы должны получить действительно хорошую производительность. этого. InnoDb более сложен с точки зрения настройки производительности, но, если повезет, он просто будет радовать вас из коробки.

person James C    schedule 26.04.2011
comment
Я отредактировал свой вопрос .. аренда ответьте на особенности чтения и записи ... Как говорится, MyIsam лучше работает при чтении ... - person user481913; 27.04.2011
comment
Я бы по-прежнему работал с InnoDb, и если в будущем вы захотите еще больше повысить производительность для стороны, доступной только для чтения, реализуйте какой-то уровень кеширования либо в шаблоне, либо на уровне данных для отображаемой рекламы. - person James C; 27.04.2011

Я предпочитаю InnoDB, потому что это скорее «настоящая» база данных. Эта ссылка предоставляет более подробную информацию:

http://www.mikebernat.com/blog/MySQL_-_InnoDB_vs_MyISAM

Цитата выбора:

"InnoDB безопасен для транзакций, что означает, что целостность данных поддерживается на протяжении всего процесса запроса. InnoDB также обеспечивает блокировку строк, в отличие от блокировки таблицы, что означает, что пока один запрос занят обновлением или вставкой строки, другой запрос может обновлять другой запрос. row в то же время. Эти функции увеличивают многопользовательский параллелизм и производительность ".

Большинство функций InnoDB сводятся к целостности данных, что всегда хорошо :)

person Ken Downs    schedule 26.04.2011

Вкратце и подведем итог: * MyISAM, если вам нужна производительность. * InnoDB, если вы ищете надежность (транзакции, внешние ключи).

Я всегда предпочитаю надежность производительности, тем более в начале проекта. Итак, начнем с InnoDB. Как только ваш сайт станет достаточно успешным, вы можете подумать о MyISAM.

person Ecco    schedule 26.04.2011
comment
Если кого-то интересуют некоторые реальные цифры производительности между MyISAM и InnoDB: mysqlperformanceblog.com/2007/01/08/. Другими словами, MyISAM не всегда быстрее, на самом деле InnoDB превосходит MyISAM во многих областях. - person rzetterberg; 26.04.2011