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

InnoDB или MyISAM - Защо не и двете?

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

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

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пренареждане / нулиране на първичния ключ за автоматично увеличение

  2. Грешка при хибернация при запазване на типа данни TEXT

  3. намерете цялото име с помощта на mysql заявка, която започва с буквата 'a'

  4. Показване на записи, които имам общи с потребител, разделени с харесвания и нехаресвания

  5. Как да разберете състоянието на репликация на MySQL с помощта на заявка за избор?