Разница между InnoDB и MyISAM?

Возможный дубликат:
MyISAM против InnoDB

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

И если бы я переключился на Inno, PDO по-прежнему будет работать с ним и какой-то старый запрос стиля?

$q = ("SELECT * ... );
$r = mysql_query($q);

Ответ 1

  • InnoDB использует блокировку строк, MyISAM использует стол, поэтому...
  • InnoDB работает медленнее, когда дело доходит до SELECT
  • InnoDB обеспечивает ссылочную целостность (что очень хорошо)
  • InnoDB позволяет осуществлять транзакции

Ответ 2

Как правило, я работаю с InnoDB, если в моей таблице будет больше обновлений/вставки/удаление операторов, а затем выберите операторы, или я хочу, чтобы реляционная база данных с внешними ключами, если не я придерживаюсь MyISAM. Если вы поедете с InnoDB, вы откажетесь от производительности выписки и способности выполнять полные текстовые поисковые индексы.

Механизм хранения MyISAM.

Механизм хранения InnoDB.

Ответ 3

Мне стоит подумать, будете ли вы использовать в основном SELECT-запросы или INSERT/UPDATE, поскольку InnoDB поддерживает блокировку на уровне строк (лучше для вставки/обновления), но MyISAM использует блокировку на уровне таблицы (быстрее, если вы используйте только выберите). Подробнее см. в руководстве по эксплуатации.

Ответ 4

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

Подробнее см. http://en.wikipedia.org/wiki/Foreign_key.

Ответ 5

Самое большое преимущество innodb over myisam в том, что innodb поддерживает транзакции/откаты. myisam обеспечит лучшую производительность в целом, так как она не будет нести одни и те же накладные расходы. Для простой таблицы пользователей вам может быть лучше придерживаться myisam.

Ответ 6

Было бы совершенно нормально использовать InnoDB вместо MyISAM для выбора пользовательских данных. PDO также будет работать с ним, и будет mysql_query и mysqli_query,. они не имеют ничего общего с типом таблицы.

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