Ядро базы данных

редактировать

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

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

Содержание
  • 1 Механизмы хранения
  • 2 Рекомендации по проектированию
    • 2.1 Иерархия хранилища базы данных
    • 2.2 Структуры данных
    • 2.3 Ориентация данных и кластеризация
    • 2.4 Индексирование базы данных
  • 3 Ссылки
  • 4 Внешние ссылки
Механизмы хранения

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

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

NameLicenseТранзакционный
Aria GPL Нет
Falcon GPLДа
InnoDB GPLДа
MyISAM GPLНет
InfiniDB GPLНет
TokuDB GPLДа
WiredTiger GPLДа
XtraDB GPLДа
RocksDB BSD Да

Дополнительные типы механизмов включают:

Рекомендации по проектированию

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

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

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

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

Обычно в настоящее время существует корреляция между скоростью хранения и ценой, в то время как более быстрое хранилище обычно нестабильно.

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

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

Базы данных могут хранить данные во многих типах структур данных. Типичные примеры:

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

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

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

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

Индексирование базы данных

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

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

Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-17 14:11:58
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте