Mysql
 sql >> база данни >  >> RDS >> Mysql

Каква е разликата между MyISAM и InnoDB?

Основните разлики между InnoDB и MyISAM („по отношение на проектиране на таблица или база данни“, за които попитахте) са поддръжката за „препратка интегритет“ и „транзакции“.

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

Това са двете най-големи разлики. Друга голяма разлика е едновременността. С MyISAM DML оператор ще получи изключително заключване на таблицата и докато това заключване е задържано, никоя друга сесия не може да извърши SELECT или DML операция на таблицата.

Тези два специфични двигателя, за които попитахте (InnoDB и MyISAM), имат различни дизайнерски цели. MySQL има и други машини за съхранение, със свои собствени дизайнерски цели.

И така, при избора между InnoDB и MyISAM, първата стъпка е да определите дали имате нужда от функциите, предоставени от InnoDB. Ако не, тогава MyISAM е за разглеждане.

По-подробното обсъждане на разликите е доста непрактично (в този форум) при липса на по-подробно обсъждане на проблемното пространство... как приложението ще използва базата данни, колко таблици, размер на таблиците, натоварване на транзакциите, обеми на избраните , вмъкване, актуализации, изисквания за едновременност, функции за репликация и др.

Логическият дизайн на базата данни трябва да бъде съсредоточен върху анализа на данните и изискванията на потребителите; изборът за използване на релационна база данни ще дойде по-късно и дори по-късно ще дойде изборът на MySQL като система за управление на релационна база данни и след това изборът на машина за съхранение за всяка таблица.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да тествате дали MySQL заявка е била успешна при промяна на данните от таблицата на базата данни?

  2. MySQL Как да INSERT INTO таблица с подзаявка SELECT, връщаща няколко реда?

  3. SQL разделяне на стойности на няколко реда

  4. Как да конвертирам от BLOB в TEXT в MySQL?

  5. Надстройте MySQL до MariaDB 10 (Част 2 – Надстройте MariaDB/MySQL 5.5 до версия 10.0)