InnoDB

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
InnoDB
Информация
Разработчик Oracle Corporation
Операционна система мултиплатформена
Вид софтуер database engine
Лиценз GPL или лицензионен
Уебсайт http://www.innodb.com/

InnoDB е една от предпочитаните подсистеми на системата за управление на бази данни MySQL, включвана във всички съвременни дистрибуции на MySQL AB. Основното предимство на InnoDB пред други подсистеми от ниско ниво на MySQL е наличието съвместим с ACID механизъм за транзакции.

InnoDB става продукт на Oracle Corporation след изкупуването на Innobase Oy през октомври 2005 г. Софтуерът е двойно лицензиран. Разпространява се под GNU General Public License, но може да се включва и в лицензен софтуер.

Сравнение с MyISAM[редактиране | edit source]

MyISAM е стандартната алтернатива на InnoDB. Някои от качествата, които ги отличават са следните:

  • InnoDB се възстановява от срив или друго неочаквано прекъсване, като преиграва записаната в лог-файловете история. MyISAM трябва изцяло да сканира и да поправи индексите или таблиците, които са били обновени, но не записани на диска. Тъй като достъпът за запис на InnoDB е с фиксирано време, а времето за запис на MyISAM расте с увеличаване на размера на файловете, InnoDB осигурява по-висока достъпност и надеждност при увеличаване на обема на базата данни.
  • MyISAM разчита на операционната система за кеширането на четенето и писането към базата данни, докато InnoDB реализира тази функционалност сам в себе си. Променените страници в базата не се изпращат незабавно към операционната система за запис, което прави InnoDB значително по-бърз от MyISAM при някои ситуации.
  • InnoDB съхранява данните физически сортирани по първичен ключ, докато MyISAM ги съхранява предимно по реда, по който данните биват добавяни. Съхраняването на редовете по реда на първичните ключове се равнява на "клъстеризирания индекс" при MS SQL и на "организираните по индекс таблици" при Oracle. Когато първичния ключ е подреден така, че да съответства на повечето стандартни заявки за търсене, това води до по-добро бързодействие.
  • InnoDB не предлага компресия както MyISAM, така че може да се наложи повече кеширане в RAM паметта и върху твърдия диск.
  • При опериране в напълно ACID-съвместим режим, InnoDB трябва да прави запис на диска поне един път по време на всяка транзакция, докато може да обединява записите от многобройни конекции. При работа със стандартни твърди дискове или масиви от дискове това ограничава броя на транзакциите до около 200 на секунда. Възможност за по-висока скорост на транзакциите се постига чрез използването на ZFS файлова система с флаш-диск. Друг подход за постигане на същия ефект е използване на дискови контролери с кеширане на записите (write caching) и резервно захранване на батерии за осигуряване непрекъснатост на транзакциите. MyISAM не страда от тези недостатъци единствено защото не работи с транзакции.