Раздел (база данных)

редактировать
Разметка вариантов на столе в MySQL в среде Adminer инструмента.

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

СОДЕРЖАНИЕ
  • 1 Критерии разделения
  • 2 Методы разбиения
  • 3 См. Также
  • 4 ссылки
Критерии разделения

Современные высокопроизводительные системы управления реляционными базами данных предусматривают различные критерии разделения базы данных. Они берут ключ разделения и назначают раздел на основе определенных критериев. Некоторые общие критерии включают:

  • Разделение по диапазону : выбирает раздел, определяя, находится ли ключ разделения в определенном диапазоне. Примером может служить раздел для всех строк, в котором столбец «zipcode» имеет значение от 70000 до 79999. Он распределяет кортежи на основе интервалов значений (диапазонов) некоторого атрибута. Помимо поддержки запросов с точным соответствием (как при хешировании), он хорошо подходит для запросов диапазона. Например, запрос с предикатом «A между A1 и A2» может быть обработан единственным узлом (ами), содержащим кортежи.
  • Разделение списка : разделу назначается список значений. Если ключ разделения имеет одно из этих значений, выбирается раздел. Например, все строки, в которых столбец Country является либо Iceland, Norway, Sweden, Finland или Denmark могут создать раздел для скандинавских стран.
  • Составное разбиение : позволяет использовать определенные комбинации вышеупомянутых схем разбиения, например, сначала применяя разбиение по диапазону, а затем разбиение по хешу. Согласованное хеширование можно рассматривать как сочетание хэша и разбиения списка, где хеш уменьшает пространство ключей до размера, который может быть указан.
  • Циклическое разбиение : простейшая стратегия, обеспечивающая равномерное распределение данных. В случае n секций разделу i назначается th кортеж в порядке вставки (i mod n). Эта стратегия позволяет осуществлять последовательный доступ к отношению параллельно. Однако прямой доступ к отдельным кортежам на основе предиката требует доступа ко всему отношению.
  • Разделение по хешу : применяет хеш-функцию к некоторому атрибуту, который дает номер раздела. Эта стратегия позволяет обрабатывать запросы с точным соответствием по атрибуту выбора только одним узлом, а все остальные запросы обрабатывать все узлы параллельно.
Методы разбиения
См. Также: Shard (архитектура базы данных)

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

  • Горизонтальное разбиение предполагает размещение разных строк в разных таблицах. Например, клиенты с почтовыми индексами менее 50000 хранятся в CustomersEast, а клиенты с почтовыми индексами больше или равными 50000 хранятся в CustomersWest. Две таблицы разделов - это CustomersEast и CustomersWest, тогда как представление с объединением может быть создано поверх обеих таблиц, чтобы обеспечить полное представление всех клиентов.
  • Вертикальное разделение включает создание таблиц с меньшим количеством столбцов и использование дополнительных таблиц для хранения оставшихся столбцов. Обычно такая практика называется нормализацией. Однако вертикальное разделение расширяет и разделяет столбцы, даже если они уже нормализованы. Этот тип разделения также называется «разделением строк», поскольку строки разделяются по столбцам и могут выполняться явно или неявно. Отдельные физические машины могут использоваться для реализации вертикального разделения: например, хранение редко используемых или очень широких столбцов, занимающих значительный объем памяти, на другой машине, является методом вертикального разделения. Распространенной формой вертикального разбиения является разделение статических данных от динамических данных, поскольку первые быстрее доступны, чем вторые, особенно для таблицы, в которой динамические данные используются не так часто, как статические. Создание представления для двух вновь созданных таблиц восстанавливает исходную таблицу со снижением производительности, но доступ только к статическим данным покажет более высокую производительность. Базы данных столбчатых можно рассматривать как базу данных, которая была вертикально секционированными до тех пор, пока каждый столбец хранится в своей таблице.
Смотрите также
Рекомендации
Последняя правка сделана 2023-04-13 10:08:17
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте