InnoDB

от Уикипедия, свободната енциклопедия
InnoDB
Информация
РазработчикOracle Corporation
Платформамеждуплатформен софтуер
Вид софтуерСУБД (подсистема за съхранение за MySQL)
ЛицензGPL или лицензионен
Уебсайтwww.innodb.com

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

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

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

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

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