Секционирование — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(управление секциями дополнено)
(горизонтальное и методы)
Строка 8: Строка 8:
  
 
=== Вертикальное ===
 
=== Вертикальное ===
TBF
+
Разбиение таблицы "по столбцам". Условие корректности: TBF
 +
Преимущества:
 +
- TBF
 +
 
 +
Недостатки:
 +
- TBF
 +
 
 +
Пример:
 +
- TBF
  
 
=== Горизонтальное ===
 
=== Горизонтальное ===
TBF
+
Разбиение таблицы "по строкам". Условие корректности: каждая строка попадает ровно в одну секцию.
 +
Преимущества:
 +
- Отделение "близких" данных от "дальних" (например, зависящих от времени).
 +
- Уменьшение размера секции
 +
- Встроенная поддержка
 +
- Прозрачность для пользователя
 +
 
 +
Недостатки:
 +
- Возможное замедление работы
 +
 
 +
Пример:
 +
- Таблица Points(SId, CId, Mark, Date)
 +
- Секции разбиты по Date на основе года.
  
 
== Методы секционирования ==
 
== Методы секционирования ==
  
 
* Простые
 
* Простые
** По диапазонам
+
** По диапазонам (задается границами)
** По значениям
+
** По значениям (списки конкретных значений)
** По хешу
+
** По хешу (записи разбиваются по хеш значению заданного набора столбцов)
* По выражению
+
* По выражению (секция задается любым методом простого секционирования)
* Составные
+
* Составные (секции ращбиваются на подсекции, например, сначала по диапазону, а затем по хешу)
** По диапазону и хешу
 
** ...
 
  
 
== Управление секциями ==
 
== Управление секциями ==
Строка 36: Строка 54:
 
   '''alter table''' <font color=red>таблица</font> '''coalesce partition''' <font color=red>число</font>''';'''
 
   '''alter table''' <font color=red>таблица</font> '''coalesce partition''' <font color=red>число</font>''';'''
  
==== Отбрасывание секций ====
+
==== Оптимизация запросов ====
Оптимизатор запросов умеет использовать секционирование для повышения производительности. Например, может быть оптимизирована операция '''select''' со сравнениями, '''=''', '''in''', '''between'''.
+
Оптимизатор запросов умеет использовать секционирование для повышения производительности. Ненужные секции могут быть отброшены, а запросы на оставшихся станут параллельными. Например, может быть оптимизирована операция '''select''' со сравнениями, '''=''', '''in''', '''between'''.
  
 
==== Индексы ====
 
==== Индексы ====
  
Индексы могут быть секционированы.
+
Индексы могут быть секционированы. TBF

Версия 18:58, 16 декабря 2021

Определение:
Секционирование — это разделение таблицы базы данных на отдельные фрагменты с раздельными настройками физического хранения.


Фрагменты могут хранится на разных компьютерах или дисках одного компьютера. Используется в целях повышения производительности и доступности больших баз данных. Это достигается за счет параллельного чтения и записи на различных дисках.

Типы секционирования

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

Разбиение таблицы "по столбцам". Условие корректности: TBF Преимущества: - TBF

Недостатки: - TBF

Пример: - TBF

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

Разбиение таблицы "по строкам". Условие корректности: каждая строка попадает ровно в одну секцию. Преимущества: - Отделение "близких" данных от "дальних" (например, зависящих от времени). - Уменьшение размера секции - Встроенная поддержка - Прозрачность для пользователя

Недостатки: - Возможное замедление работы

Пример: - Таблица Points(SId, CId, Mark, Date) - Секции разбиты по Date на основе года.

Методы секционирования

  • Простые
    • По диапазонам (задается границами)
    • По значениям (списки конкретных значений)
    • По хешу (записи разбиваются по хеш значению заданного набора столбцов)
  • По выражению (секция задается любым методом простого секционирования)
  • Составные (секции ращбиваются на подсекции, например, сначала по диапазону, а затем по хешу)

Управление секциями

Удаление секции

 alter table таблица drop partition секция;

Разбиение секции

 alter table таблица reorganize секция into (...);

Перехеширование

 alter table таблица add partition число;
 alter table таблица coalesce partition число;

Оптимизация запросов

Оптимизатор запросов умеет использовать секционирование для повышения производительности. Ненужные секции могут быть отброшены, а запросы на оставшихся станут параллельными. Например, может быть оптимизирована операция select со сравнениями, =, in, between.

Индексы

Индексы могут быть секционированы. TBF