InnoDB или MyISAM? - PullRequest
       7

InnoDB или MyISAM?

1 голос
/ 23 октября 2010

У меня есть две таблицы: пользователи и дружба. Действия, которые у меня есть на сайте:

  • Регистрация
  • Войти
  • Выбор друзей / людей из таблицы пользователей
  • Добавить людей в друзья

Есть немного больше действий, но в целом я хотел знать :

Вопрос:

Должен ли я использовать InnoDB или MyISAM для таблиц? (Или InnoDB для одного и MyISAM для другого?)

Ответы [ 2 ]

5 голосов
/ 23 октября 2010

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

Однако есть еще одно большое преимущество. InnoDB поддерживает MVCC (параллельный параллелизм). Это означает, что, когда транзакция работает со строкой, другие транзакции / операторы могут видеть старое значение строки. С MyISAM эта операция будет заблокирована. Меньше блокировок означает, что вы можете иметь больше пользователей, одновременно работающих с вашим набором данных.

5 голосов
/ 23 октября 2010

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

...