<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=5.18.242.245&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=5.18.242.245&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/5.18.242.245"/>
		<updated>2026-07-04T09:36:12Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%B5%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=81948</id>
		<title>Секционирование</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%B5%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=81948"/>
				<updated>2021-12-26T20:28:09Z</updated>
		
		<summary type="html">&lt;p&gt;5.18.242.245: Комментарии к управлению секцинированием, дополнения и исправления опечаток&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Секционирование''' — это разделение таблицы базы данных на отдельные фрагменты с раздельными настройками физического хранения.}}&lt;br /&gt;
Фрагменты могут хранится на разных компьютерах или дисках одного компьютера. Секционирование используется в целях повышения производительности и доступности больших баз данных. Это достигается за счет параллельного чтения и записи на различных дисках, а также работы оптимизатора запросов.&lt;br /&gt;
&lt;br /&gt;
== Типы секционирования ==&lt;br /&gt;
&lt;br /&gt;
=== Вертикальное ===&lt;br /&gt;
Разбиение таблицы «по столбцам». Условие корректности: секции содержат надключ (следует из теоремы Фейгина).&lt;br /&gt;
&lt;br /&gt;
Преимущества:&lt;br /&gt;
* Отделение «частых» данных от «редких»&lt;br /&gt;
* Защита информации (можно задать разные права доступа на разные секции)&lt;br /&gt;
* Автоматическая поддержка для CLOB и BLOB (они хранятся отдельно от записи)&lt;br /&gt;
&lt;br /&gt;
Недостатки:&lt;br /&gt;
* Нет специальной поддержки&lt;br /&gt;
* Зависимость от представления&lt;br /&gt;
* Необходимость обновляемых представлений&lt;br /&gt;
&lt;br /&gt;
=== Горизонтальное ===&lt;br /&gt;
Разбиение таблицы «по строкам». Условие корректности: каждая строка попадает ровно в одну секцию.&lt;br /&gt;
&lt;br /&gt;
Преимущества:&lt;br /&gt;
* Отделение «близких» данных от «дальних» (например, зависящих от времени).&lt;br /&gt;
* Уменьшение размера секции&lt;br /&gt;
* Встроенная поддержка&lt;br /&gt;
* Прозрачность для пользователя&lt;br /&gt;
&lt;br /&gt;
Недостатки:&lt;br /&gt;
* Возможное замедление работы&lt;br /&gt;
&lt;br /&gt;
Пример: таблица Points(SId, CId, Mark, Date), секции разбиты по Date на основе года.&lt;br /&gt;
&lt;br /&gt;
== Методы секционирования ==&lt;br /&gt;
&lt;br /&gt;
* Простые&lt;br /&gt;
** По диапазонам (задается границами)&lt;br /&gt;
** По значениям (списки конкретных значений)&lt;br /&gt;
** По хешу (записи разбиваются по хеш значению заданного набора столбцов)&lt;br /&gt;
* По выражению (секция задается любым методом простого секционирования)&lt;br /&gt;
* Составные (секции разбиваются на подсекции, например, сначала по диапазону, а затем по хешу)&lt;br /&gt;
&lt;br /&gt;
При попытке записи значения, которое не попадает ни в одну секцию, происходит ошибка.&lt;br /&gt;
&lt;br /&gt;
== Управление секциями ==&lt;br /&gt;
Управление секционированием не входит в стандарт SQL, поэтому для различных баз данных приведенные запросы могут иметь отличный синтаксис.&lt;br /&gt;
&lt;br /&gt;
==== Удаление секции ====&lt;br /&gt;
  '''alter table''' &amp;lt;font color=red&amp;gt;таблица&amp;lt;/font&amp;gt; '''drop partition''' &amp;lt;font color=red&amp;gt;секция&amp;lt;/font&amp;gt;''';'''&lt;br /&gt;
&lt;br /&gt;
==== Разбиение секции ====&lt;br /&gt;
Разбиение одной секции на несколько. Получаемые секции должны быть согласованы, например, исходный диапазон полностью разбивается на несколько поддиапазонов.&lt;br /&gt;
&lt;br /&gt;
  '''alter table''' &amp;lt;font color=red&amp;gt;таблица&amp;lt;/font&amp;gt; '''reorganize''' &amp;lt;font color=red&amp;gt;секция&amp;lt;/font&amp;gt; '''into ('''...''')''';&lt;br /&gt;
&lt;br /&gt;
==== Перехеширование ====&lt;br /&gt;
В случе секционирования по хешу можно изменить количество бакетов, но нельзя повлиять на размещение записей по бакетам.&lt;br /&gt;
&lt;br /&gt;
  '''alter table''' &amp;lt;font color=red&amp;gt;таблица&amp;lt;/font&amp;gt; '''add partition''' &amp;lt;font color=red&amp;gt;число&amp;lt;/font&amp;gt;''';'''&lt;br /&gt;
  '''alter table''' &amp;lt;font color=red&amp;gt;таблица&amp;lt;/font&amp;gt; '''coalesce partition''' &amp;lt;font color=red&amp;gt;число&amp;lt;/font&amp;gt;''';'''&lt;br /&gt;
&lt;br /&gt;
==== Оптимизация запросов ====&lt;br /&gt;
Оптимизатор запросов умеет использовать секционирование для повышения производительности. Ненужные секции могут быть отброшены, а запросы на оставшихся станут параллельными. Например, может быть оптимизирована операция '''select''' со сравнениями, '''=''', '''in''', '''between'''.&lt;br /&gt;
&lt;br /&gt;
==== Индексы ====&lt;br /&gt;
&lt;br /&gt;
Индексы могут быть секционированы.&lt;br /&gt;
&lt;br /&gt;
Типы индексов:&lt;br /&gt;
* Локальный — один на секцию&lt;br /&gt;
* Глобальный — один на таблицу&lt;br /&gt;
* Секционированный — разбит на секции по-своему&lt;br /&gt;
&lt;br /&gt;
Локальный и глобальный индекс нужны для оптимизации запросов.&lt;br /&gt;
&lt;br /&gt;
Секционированный индекс имеет смысл, если глобальный индекс слишком велик по размеру. Секционирование таблицы и индекса должено быть согласовано, чтобы не относить секцию таблицы к нескольким секциям индекса. Однако разрешается относить несколько секций таблицы к одной секции индекса.&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
* [https://www.postgresql.org/docs/current/ddl-partitioning.html PostgreSQL: Table Partitioning]&lt;br /&gt;
* [https://dev.mysql.com/doc/refman/8.0/en/partitioning.html MySQL: Partitioning]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Базы данных]]&lt;/div&gt;</summary>
		<author><name>5.18.242.245</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=81313</id>
		<title>Репликация</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A0%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F&amp;diff=81313"/>
				<updated>2021-12-12T20:41:12Z</updated>
		
		<summary type="html">&lt;p&gt;5.18.242.245: Структура страницы&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Репликация''' — это поддержание одинаковых данных на нескольких узлах распределенной системы.}}&lt;br /&gt;
'''Типы репликации'''&lt;br /&gt;
* Синхронная -- требует введения распределенных транзакций и гарантирует одинаковое состояние реплик.&lt;br /&gt;
* Асинхронная -- допускает задержки репликации на репликах.&lt;br /&gt;
&lt;br /&gt;
'''Схемы репликации'''&lt;br /&gt;
* С основной копией -- запросы на запись поступают в централизованное место, а затем реплицируются&lt;br /&gt;
* Симметричная -- запросы на запись могут поступать в различные копии&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Реализация репликации ==&lt;br /&gt;
&lt;br /&gt;
=== С основной копией ===&lt;br /&gt;
&lt;br /&gt;
=== Симметричная ===&lt;br /&gt;
&lt;br /&gt;
=== Рассылка изменений ===&lt;br /&gt;
Информация обо всех сделанных изменения содержится в журнале транзакций. Репликация достигается за счёт рассылки протоколов транзакций.&lt;br /&gt;
&lt;br /&gt;
==== Репликация операторов ====&lt;br /&gt;
* На реплике выполняются те же операторы&lt;br /&gt;
* Пересылается малый объем данных&lt;br /&gt;
* Операторы должны быть детерминированны&lt;br /&gt;
* Необходимо учитывать взаимный порядок выполнения транзакций.&lt;br /&gt;
&lt;br /&gt;
==== Репликация записей ====&lt;br /&gt;
* Пересылается информация об изменении записей&lt;br /&gt;
* Результат детерминирован&lt;br /&gt;
* Вынужденно пересылается большое количество записей&lt;br /&gt;
&lt;br /&gt;
== Применения репликации ==&lt;br /&gt;
&lt;br /&gt;
=== Вертикальное масштабирование ===&lt;br /&gt;
&lt;br /&gt;
=== Горизонтальное масштабирование ===&lt;br /&gt;
&lt;br /&gt;
=== Повышение доступности ===&lt;br /&gt;
&lt;br /&gt;
=== Резервное копирование ===&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;/div&gt;</summary>
		<author><name>5.18.242.245</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%B5%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=81307</id>
		<title>Секционирование</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%B5%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=81307"/>
				<updated>2021-12-12T17:29:25Z</updated>
		
		<summary type="html">&lt;p&gt;5.18.242.245: управление секциями дополнено&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Секционирование''' — это разделение таблицы базы данных на отдельные фрагменты с раздельными настройками физического хранения.}}&lt;br /&gt;
&lt;br /&gt;
Фрагменты могут хранится на разных компьютерах или дисках одного компьютера. Используется в целях повышения производительности и доступности больших баз данных. Это достигается за счет параллельного чтения и записи на различных дисках.&lt;br /&gt;
&lt;br /&gt;
== Типы секционирования ==&lt;br /&gt;
&lt;br /&gt;
=== Вертикальное ===&lt;br /&gt;
TBF&lt;br /&gt;
&lt;br /&gt;
=== Горизонтальное ===&lt;br /&gt;
TBF&lt;br /&gt;
&lt;br /&gt;
== Методы секционирования ==&lt;br /&gt;
&lt;br /&gt;
* Простые&lt;br /&gt;
** По диапазонам&lt;br /&gt;
** По значениям&lt;br /&gt;
** По хешу&lt;br /&gt;
* По выражению&lt;br /&gt;
* Составные&lt;br /&gt;
** По диапазону и хешу&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
== Управление секциями ==&lt;br /&gt;
&lt;br /&gt;
==== Удаление секции ====&lt;br /&gt;
  '''alter table''' &amp;lt;font color=red&amp;gt;таблица&amp;lt;/font&amp;gt; '''drop partition''' &amp;lt;font color=red&amp;gt;секция&amp;lt;/font&amp;gt;''';'''&lt;br /&gt;
&lt;br /&gt;
==== Разбиение секции ====&lt;br /&gt;
  '''alter table''' &amp;lt;font color=red&amp;gt;таблица&amp;lt;/font&amp;gt; '''reorganize''' &amp;lt;font color=red&amp;gt;секция&amp;lt;/font&amp;gt; '''into ('''...''')''';&lt;br /&gt;
&lt;br /&gt;
==== Перехеширование ====&lt;br /&gt;
  '''alter table''' &amp;lt;font color=red&amp;gt;таблица&amp;lt;/font&amp;gt; '''add partition''' &amp;lt;font color=red&amp;gt;число&amp;lt;/font&amp;gt;''';'''&lt;br /&gt;
  '''alter table''' &amp;lt;font color=red&amp;gt;таблица&amp;lt;/font&amp;gt; '''coalesce partition''' &amp;lt;font color=red&amp;gt;число&amp;lt;/font&amp;gt;''';'''&lt;br /&gt;
&lt;br /&gt;
==== Отбрасывание секций ====&lt;br /&gt;
Оптимизатор запросов умеет использовать секционирование для повышения производительности. Например, может быть оптимизирована операция '''select''' со сравнениями, '''=''', '''in''', '''between'''.&lt;br /&gt;
&lt;br /&gt;
==== Индексы ====&lt;br /&gt;
&lt;br /&gt;
Индексы могут быть секционированы.&lt;/div&gt;</summary>
		<author><name>5.18.242.245</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%B5%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=81306</id>
		<title>Секционирование</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%B5%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;diff=81306"/>
				<updated>2021-12-12T17:20:56Z</updated>
		
		<summary type="html">&lt;p&gt;5.18.242.245: Структура страницы&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Секционирование''' — это разделение таблицы базы данных на отдельные фрагменты с раздельными настройками физического хранения.}}&lt;br /&gt;
&lt;br /&gt;
Фрагменты могут хранится на разных компьютерах или дисках одного компьютера. Используется в целях повышения производительности и доступности больших баз данных. Это достигается за счет параллельного чтения и записи на различных дисках.&lt;br /&gt;
&lt;br /&gt;
== Типы секционирования ==&lt;br /&gt;
&lt;br /&gt;
=== Вертикальное ===&lt;br /&gt;
TBF&lt;br /&gt;
&lt;br /&gt;
=== Горизонтальное ===&lt;br /&gt;
TBF&lt;br /&gt;
&lt;br /&gt;
== Методы секционирования ==&lt;br /&gt;
&lt;br /&gt;
* Простые&lt;br /&gt;
** По диапазонам&lt;br /&gt;
** По значениям&lt;br /&gt;
** По хешу&lt;br /&gt;
* По выражению&lt;br /&gt;
* Составные&lt;br /&gt;
** По диапазону и хешу&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
== Управление секциями ==&lt;br /&gt;
&lt;br /&gt;
==== Удаление секции ====&lt;br /&gt;
  '''alter table''' &amp;lt;font color=red&amp;gt;таблица&amp;lt;/font&amp;gt; '''drop partition''' &amp;lt;font color=red&amp;gt;секция&amp;lt;/font&amp;gt;''';'''&lt;br /&gt;
&lt;br /&gt;
==== Разбиение секции ====&lt;br /&gt;
  '''alter table''' &amp;lt;font color=red&amp;gt;таблица&amp;lt;/font&amp;gt; '''reorganize''' &amp;lt;font color=red&amp;gt;секция&amp;lt;/font&amp;gt; '''into ('''...''')''';&lt;br /&gt;
&lt;br /&gt;
==== Перехеширование ====&lt;br /&gt;
  '''alter table''' &amp;lt;font color=red&amp;gt;таблица&amp;lt;/font&amp;gt; '''add partition''' &amp;lt;font color=red&amp;gt;число&amp;lt;/font&amp;gt;''';'''&lt;br /&gt;
  '''alter table''' &amp;lt;font color=red&amp;gt;таблица&amp;lt;/font&amp;gt; '''coalesce partition''' &amp;lt;font color=red&amp;gt;число&amp;lt;/font&amp;gt;''';'''&lt;br /&gt;
&lt;br /&gt;
TBC&lt;/div&gt;</summary>
		<author><name>5.18.242.245</name></author>	</entry>

	</feed>