stringtranslate.com

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

Параметры секционирования таблицы в MySQL в среде инструмента Adminer .

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

Критерии разбиения

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

Методы разбиения

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

Горизонтальное разбиение

Горизонтальное разбиение подразумевает размещение разных строк в разных таблицах. Например, клиенты с почтовыми индексами менее 50000 хранятся в CustomersEast, а клиенты с почтовыми индексами больше или равными 50000 хранятся в CustomersWest. Две таблицы разбиения тогда называются CustomersEast и CustomersWest, а представление с объединением может быть создано для них обоих, чтобы обеспечить полное представление всех клиентов.

Вертикальное разделение

Вертикальное разбиение подразумевает создание таблиц с меньшим количеством столбцов и использование дополнительных таблиц для хранения оставшихся столбцов. [1] Обычно эта практика известна как нормализация . Однако вертикальное разбиение распространяется дальше и разбивает столбцы даже тогда, когда они уже нормализованы. Этот тип разбиения также называется «разбиением строк», поскольку строки разбиваются по своим столбцам и может выполняться явно или неявно. Для реализации вертикального разбиения могут использоваться отдельные физические машины: например, хранение редко используемых или очень широких столбцов, занимающих значительный объем памяти, на другой машине — это метод вертикального разбиения. Распространенной формой вертикального разбиения является разделение статических данных от динамических, поскольку доступ к первым осуществляется быстрее, чем к последним, особенно для таблицы, где динамические данные используются не так часто, как статические. Создание представления по двум вновь созданным таблицам восстанавливает исходную таблицу с потерей производительности, но доступ только к статическим данным покажет более высокую производительность. Колончатую базу данных можно рассматривать как базу данных, которая была вертикально разбиена до тех пор, пока каждый столбец не будет сохранен в своей собственной таблице.

Смотрите также

Ссылки

  1. ^ ab «Алгоритмы вертикального разбиения для проектирования баз данных», Шамкан Навате, Стефано Чери, Джио Видерхольд и Джингли Доу, Стэнфордский университет, 1984 г.