stringtranslate.com

Движок базы данных

Механизм базы данных (или механизм хранения ) — это базовый программный компонент, который система управления базами данных (СУБД) использует для создания, чтения, обновления и удаления (CRUD) данных из базы данных . Большинство систем управления базами данных включают в себя собственный интерфейс прикладного программирования (API), который позволяет пользователю взаимодействовать с их базовым механизмом, не проходя через пользовательский интерфейс СУБД.

Термин «движок базы данных» часто используется взаимозаменяемо с « сервером базы данных » или «системой управления базами данных». «Экземпляр базы данных» относится к процессам и структурам памяти работающего движка базы данных.

Двигатели для хранения данных

Многие современные СУБД поддерживают несколько хранилищ в одной базе данных. Например, MySQL поддерживает InnoDB, а также MyISAM .

Некоторые системы хранения данных являются транзакционными .

Дополнительные типы двигателей включают:

Соображения по дизайну

Информация в базе данных хранится в виде битов, размещенных в структурах данных на оборудовании для хранения. Эти структуры данных предназначены для эффективного чтения и записи на оборудование для хранения и с него. Обычно само оборудование для хранения разрабатывается для удовлетворения требований различных систем, включая базы данных, которые широко используют хранилище. Работающая СУБД всегда использует несколько типов хранилищ одновременно. Эти различные типы хранилищ, такие как флэш-память и внешнее дисковое хранилище , требуют различных методов размещения данных.

В принципе, хранилище базы данных можно рассматривать как линейное адресное пространство , где каждый бит данных имеет уникальный адрес. На практике только очень небольшой процент адресов сохраняется как начальные опорные точки, которые также требуют хранения. Большинство данных доступны косвенно, используя вычисления смещения (расстояние в битах от опорных точек) и структуры данных, которые определяют пути доступа (используя указатели) ко всем необходимым данным эффективным образом, оптимизированным для необходимых операций доступа к данным.

Иерархия хранения базы данных

База данных, во время работы, находится одновременно в нескольких типах хранилищ, образуя иерархию хранилищ . Внутри современного компьютера, на котором размещена СУБД, большая часть «базы данных» находится, частично реплицированная, в энергозависимом хранилище . Данные, которые активно обрабатываются и манипулируются, находятся внутри процессора , возможно, в кэшах процессора . Эти данные считываются из памяти и записываются в нее, как правило, через компьютерную шину , которая обычно является компонентом энергозависимого хранилища. Компьютерная память передает данные во внешнее хранилище и из него, как правило, через стандартные интерфейсы или сети хранения (например, Fibre Channel , iSCSI ).

Массив хранения данных , обычное внешнее запоминающее устройство, обычно имеет собственную иерархию хранения. Быстрый кэш, обычно состоящий из энергозависимой и быстрой DRAM , подключается (через стандартные интерфейсы) к дискам. Эти диски могут иметь разные скорости, как флэш-накопители и энергонезависимые магнитные дисковые накопители . Скорость и цена, как правило, коррелируют. Диски могут быть подключены к магнитным лентам , на которых могут находиться наименее активные части большой базы данных. Там же могут находиться резервные копии .

Структуры данных

Структура данных — это абстрактная конструкция, которая встраивает данные четко определенным образом. Эффективная структура данных позволяет эффективно манипулировать данными. Манипулирование данными может включать вставку, удаление, обновление и извлечение данных в различных режимах. Определенный тип структуры данных может быть очень эффективным в определенных операциях и очень неэффективным в других. Тип структуры данных выбирается при разработке СУБД для наилучшего соответствия операциям, необходимым для типов данных, которые она содержит. Тип структуры данных, выбранный для определенной задачи, обычно также учитывает тип хранилища, в котором она находится (например, скорость доступа, минимальный размер доступного фрагмента хранилища и т. д.). В некоторых СУБД администраторы баз данных имеют гибкость в выборе среди вариантов структур данных для хранения пользовательских данных по соображениям производительности. Иногда структуры данных имеют выбираемые параметры для настройки производительности базы данных.

Базы данных могут хранить данные во многих типах структур данных. [1] Распространенными примерами являются следующие:

Ориентация данных и кластеризация

В отличие от традиционной строчной ориентации, реляционные базы данных могут также быть столбцово-ориентированными или корреляционными по способу хранения данных в любой конкретной структуре.

В общем, существенное улучшение производительности достигается, если различные типы объектов базы данных, которые обычно используются вместе, размещаются в хранилище рядом, будучи «кластеризованными». Обычно это позволяет извлекать необходимые связанные объекты из хранилища за минимальное количество операций ввода (каждая из которых иногда занимает значительное время). Даже для баз данных в памяти кластеризация обеспечивает преимущество производительности за счет общего использования больших кэшей для операций ввода-вывода в памяти с аналогичным результирующим поведением.

Например, может быть полезно кластеризовать запись о "предмете" на складе со всеми соответствующими ему записями о "заказе". Решение о кластеризации определенных объектов зависит от статистики использования объектов, размеров объектов, размеров кэшей, типов хранения и т. д.

Индексация базы данных

Индексирование — это метод, который некоторые системы хранения данных используют для повышения производительности базы данных. Многие типы индексов имеют общее свойство: они уменьшают необходимость проверки каждой записи при выполнении запроса. В больших базах данных это может сократить время/стоимость запроса на порядки. Простейшая форма индекса — это отсортированный список значений, который можно искать с помощью бинарного поиска с соседней ссылкой на местоположение записи, аналогично индексу в конце книги. Одни и те же данные могут иметь несколько индексов (база данных сотрудников может быть проиндексирована по фамилии и дате приема на работу).

Индексы влияют на производительность, но не на результаты. Разработчики баз данных могут добавлять или удалять индексы, не меняя логику приложения, что снижает затраты на обслуживание по мере роста базы данных и изменения ее использования. Индексы могут ускорить доступ к данным, но они занимают место в базе данных и должны обновляться каждый раз при изменении данных. Таким образом, индексы могут ускорить доступ к данным, но замедлить обслуживание данных. Эти два свойства определяют, стоит ли данный индекс своих затрат.

Ссылки

  1. ^ Лайтстоун, С.; Теори, Т.; Надо, Т. (2007). Физическое проектирование баз данных: руководство для специалистов по базам данных по использованию индексов, представлений, хранилищ и многого другого . Morgan Kaufmann Press. ISBN 978-0-12-369389-1.

Внешние ссылки