MySql: MyISAM по сравнению с DB Inno! [закрытый]

43
задан Daniel A. White 6 March 2017 в 03:13
поделиться

9 ответов

Основное различие - то, что InnoDB поддерживает транзакции, в то время как MyISAM не делает.

существуют многочисленные другие различия, однако общее, я знаю:

  • MyISAM обычно считали быстрее при поиске, но недавние улучшения InnoDB удаляют это различие и улучшают высокую производительность рабочей нагрузки параллелизма
  • транзакции поддержки InnoDB, пока MyISAM не делает
  • , InnoDB поддерживает ссылочную целостность, пока MyISAM не делает
  • , дескрипторы InnoDB индексируют немного по-другому, храня первичный ключ как часть каждого индекса (заставляющий индексы поднять больше комнаты на диске, но также и того, чтобы заставлять покрытие индексировать более вероятно)
  • , MyISAM действительно представляет блокировку уровня в виде таблицы, в то время как InnoDB может сделать уровень строки, блокирующий
  • , Различные настройки памяти/буфера/индекса используются в конфигурационных файлах MySQL
  • , InnoDB, как обычно говорят, имеет лучшее восстановление катастрофического отказа
  • , Как упомянуто в другом ответе, данные являются хранилищем на диске по-другому. Я полагаю, что InnoDB настраивается в этой области и может иметь один файл на таблицу и т.д. при необходимости

, я уверен, поиск Google или сайт MySQL поднимут многочисленные другие различия более подробно.

54
ответ дан Anant 26 November 2019 в 22:43
поделиться

MyISAM поддерживает (нестандартный SQL) полнотекстовое индексирование, которое все еще не делает InnoDB. Это - единственная причина, мы когда-либо используем MyISAM сегодня.

16
ответ дан bobince 26 November 2019 в 22:43
поделиться

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

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

4
ответ дан Alexander Malfait 26 November 2019 в 22:43
поделиться

У Вас может быть больше информации о MyISAM & InnoDB в MySQL Documentation:

http://dev.mysql.com/doc/refman/5.1/en/myisam-storage-engine.html

http://dev.mysql.com/doc/refman/5.1/en/innodb-overview.html

3
ответ дан sebthebert 26 November 2019 в 22:43
поделиться

Существенное различие - то, что InnoDB поддерживает транзакции , тогда как MyISAM не делает.

1
ответ дан Greg 26 November 2019 в 22:43
поделиться

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

1
ответ дан Greg 26 November 2019 в 22:43
поделиться

Вот описание различий между InnoDB и MyIsam:

Различия между InnoDB и MyIsam

Немного различий:

  • MYISAM does не поддерживает любые транзакции базы данных,
  • , INNODB обеспечит транзакции
  • , MYISAM обеспечивает блокировку уровня таблицы,
  • , INNODB обеспечивает уровень строки, блокирующий
  • , INNOBD поддерживает внешние ключи, , MYISAM не делает...
0
ответ дан Fred 26 November 2019 в 22:43
поделиться

MyISAM является большим количеством convienient когда дело доходит до резервного копирования, так как довольно просто просто заблокировать все таблицы и скопировать файлы непосредственно в файловой системе. (mysqlhotcopy то, которое является perl-сценарием, является даже частью mysql afaik)

, InnoDB немного более сложен и просто копирует, файлы не сделают, так как они не могут быть восстановлены на другой машине out-of-the-box.

Однако существует коммерческое программное обеспечение, которое предлагает InnoDB hotcopying.

0
ответ дан jishi 26 November 2019 в 22:43
поделиться

Хотя поддержка транзакций является основным отличием, блокировка на уровне таблицы может стать проблемой, если у вас есть длительные запросы SELECT, смешанные с операторами UPDATE .

0
ответ дан 26 November 2019 в 22:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: