Выбор хранилища для сайта - Myisam или Innodb? - PullRequest
0 голосов
/ 26 апреля 2011

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

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

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

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

Ответы [ 3 ]

4 голосов
/ 26 апреля 2011

В терминах v.high level:

InnoDb

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

MySQL

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

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

3 голосов
/ 26 апреля 2011

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

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

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

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

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

0 голосов
/ 26 апреля 2011

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

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

...