2017-02-07 3 views
1

Когда я узнал об этом Google, когда InnoDB используется в качестве хранилища, он блокирует определенную строку в таблице, а MYISM (Indexed Sequential Access Method) блокирует всю таблицу. Тогда что это значит с примером реального мира.Разница между InnoDB и другим хранилищем Двигатель

ответ

3

Основные отличия между InnoDB и MyISAM («относительно проектирования таблицы или базы данных», о которых вы просили) являются поддержкой «ссылочной целостности» и «транзакций».

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

Это два самых больших различия. Еще одна большая разница - параллелизм. С помощью MyISAM оператор DML получит исключительную блокировку в таблице, и если эта блокировка сохраняется, ни один другой сеанс не может выполнять операцию SELECT или DML в таблице.

Эти два конкретных двигателя, о которых вы спрашивали (InnoDB и MyISAM), имеют разные цели дизайна. У MySQL также есть другие механизмы хранения, с их собственными целями проектирования.

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

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

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

Ниже приведены точки пули, которые вы можете читать более легко.

MYISAM:

  • MYISAM поддерживает таблицу блокировки на уровне

  • MyISAM предназначен для нуждающихся в скорости

  • MyISAM не поддерживает внешние ключи, следовательно, мы называем MySQL с MyISAM является СУБД

  • MyISAM хранит свои таблицы, данные и индексы в дисках туз с использованием отдельных трех разных файлов. (tablename.FRM, tablename.MYD, tablename.MYI)

  • MYISAM не поддерживает транзакцию. Вы не можете совершить и откат с MYISAM. Когда вы выполните команду, это будет сделано.

  • MYISAM полнотекстовый поиск.

  • Вы можете использовать MyISAM, если таблица более статична с большим количеством выбора и обновления и удаления.

INNODB:

  • ЬшоВВ поддерживает на уровне строк Блокировка

  • InnoDB, предназначенный для обеспечения максимальной производительности при обработке большого объема данных

  • InnoDB supportforeign ключи, следовательно, мы называем MySQL с

  • InnoDB - это RDBMS InnoDB магазины его таблицы и индексы в табличном пространстве

  • InnoDB поддерживает транзакцию. Вы можете совершить и откат с помощью InnoDB

+0

Спасибо :) его очень полезно для меня –

Смежные вопросы