Ответ 1
- InnoDB использует блокировку строк, MyISAM использует стол, поэтому...
- InnoDB работает медленнее, когда дело доходит до SELECT
- InnoDB обеспечивает ссылочную целостность (что очень хорошо)
- InnoDB позволяет осуществлять транзакции
Возможный дубликат:
MyISAM против InnoDB
Хорошо, я прочитал эту информацию из Википедии, и InnoDB кажется лучше. Вот мой вопрос: было бы нормально использовать InnoDB вместо MyISAM для выбора пользовательских данных из базы данных? Или было бы лучше остаться с MyISAM для этого.
И если бы я переключился на Inno, PDO по-прежнему будет работать с ним и какой-то старый запрос стиля?
$q = ("SELECT * ... );
$r = mysql_query($q);
Как правило, я работаю с InnoDB, если в моей таблице будет больше обновлений/вставки/удаление операторов, а затем выберите операторы, или я хочу, чтобы реляционная база данных с внешними ключами, если не я придерживаюсь MyISAM. Если вы поедете с InnoDB, вы откажетесь от производительности выписки и способности выполнять полные текстовые поисковые индексы.
Мне стоит подумать, будете ли вы использовать в основном SELECT-запросы или INSERT/UPDATE, поскольку InnoDB поддерживает блокировку на уровне строк (лучше для вставки/обновления), но MyISAM использует блокировку на уровне таблицы (быстрее, если вы используйте только выберите). Подробнее см. в руководстве по эксплуатации.
InnoDB против MyISAM не будет иметь никакого отношения к тому, как вы кодируете свои операторы select. Там, где это поможет, вы можете использовать внешние ключи, которые помогут вам сохранить ссылочную целостность в вашей базе данных и, если они правильно настроены, помогут не создавать записи-сироты.
Подробнее см. http://en.wikipedia.org/wiki/Foreign_key.
Самое большое преимущество innodb over myisam в том, что innodb поддерживает транзакции/откаты. myisam обеспечит лучшую производительность в целом, так как она не будет нести одни и те же накладные расходы. Для простой таблицы пользователей вам может быть лучше придерживаться myisam.
Было бы совершенно нормально использовать InnoDB вместо MyISAM для выбора пользовательских данных. PDO также будет работать с ним, и будет mysql_query и mysqli_query,. они не имеют ничего общего с типом таблицы.
Но имейте в виду, что есть много разных конфигураций, которые вам нужно понять, прежде чем вы начнете их использовать. если вы являетесь случайным разработчиком, я предлагаю остаться с MyISAM