Разница между innodb и myisam

Автор: Oscarwin
Ссылка: https://www.zhihu.com/question/20596402/answer/211492971
Источник: Zhihu
Авторские права принадлежат автору. Для коммерческой перепечатки просьба обращаться к автору за авторизацией, для некоммерческой перепечатки просьба указывать источник.
 

разница:

1. InnoDB поддерживает транзакции, а MyISAM нет.Для InnoDB каждый язык SQL инкапсулируется в транзакцию по умолчанию и автоматически отправляется.Это повлияет на скорость, поэтому лучше всего поставить несколько языков SQL между begin и commit оформить сделку;

2. InnoDB поддерживает внешние ключи, а MyISAM — нет. Преобразование таблицы InnoDB, содержащей внешние ключи, в MYISAM не удастся;

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

4. InnoDB не сохраняет определенное количество строк в таблице и требует полного сканирования таблицы при выполнении команды select count(*) from table. Однако MyISAM использует переменную для сохранения количества строк во всей таблице.При выполнении приведенного выше оператора вам нужно только прочитать переменную, и скорость очень высокая;

5. Innodb не поддерживает полнотекстовое индексирование, в то время как MyISAM поддерживает полнотекстовое индексирование, а MyISAM имеет более высокую эффективность запросов;

 

как выбрать:

1. Поддерживать ли транзакции, если да, пожалуйста, выберите innodb, если нет, вы можете рассмотреть MyISAM;

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

3. После сбоя системы восстановить MyISAM сложнее, допустимо ли это;

4. Начиная с MySQL5.5 Innodb стал движком Mysql по умолчанию (ранее MyISAM), что показывает, что его преимущества очевидны для всех. Будь плохим.

Перепечатано с: https://www.zhihu.com/question/20596402

Supongo que te gusta

Origin blog.csdn.net/qq_21514303/article/details/89215285
Recomendado
Clasificación