2024-06-20 21:49:23 +03:00
|
|
|
|
---
|
|
|
|
|
aliases:
|
|
|
|
|
tags:
|
|
|
|
|
- зрелость/🌱
|
|
|
|
|
date:
|
|
|
|
|
- - 2024-06-20
|
|
|
|
|
zero-link:
|
|
|
|
|
- "[[00 Базы Данных]]"
|
2024-06-20 21:54:23 +03:00
|
|
|
|
- "[[00 HighLoad]]"
|
2024-06-20 21:49:23 +03:00
|
|
|
|
parents:
|
|
|
|
|
linked:
|
2024-06-20 21:54:23 +03:00
|
|
|
|
- "[[Шардирование в БД]]"
|
2024-06-20 21:49:23 +03:00
|
|
|
|
---
|
2024-07-13 19:55:17 +03:00
|
|
|
|
На некоторых докладах партиции назывались вертикальным [шардированием](Шардирование%20в%20БД.md).
|
|
|
|
|
|
2024-07-13 20:00:17 +03:00
|
|
|
|
**Принципы:**
|
2024-06-20 21:49:23 +03:00
|
|
|
|
- Берем данные и разделяем по какому-то признаку
|
|
|
|
|
- Разделенные данные физически лежат отдельно. Разные таблицы
|
|
|
|
|
- Но все данные остаются в пределах одного сервера.
|
|
|
|
|
|
|
|
|
|
**Минусы:**
|
2024-07-13 20:00:17 +03:00
|
|
|
|
- Некоторые запросы могут замедлиться. Для выполнения запросов, в которых нам нужно сходить в несколько партиций.
|
2024-06-20 21:49:23 +03:00
|
|
|
|
- Так как данные лежат на одном сервере, то если уперлись в производительность диска, партиционирование не поможет.
|
2024-07-13 20:00:17 +03:00
|
|
|
|
- Перестройка партиций дорогостоящая операция.
|
2024-06-20 21:49:23 +03:00
|
|
|
|
|
|
|
|
|
**Плюсы:**
|
2024-06-20 21:59:23 +03:00
|
|
|
|
- Простая реализация. Разработчик продолжает обращаться к таблице, а СУБД понимает в какую партицию ей стоит идти.
|
2024-06-20 21:49:23 +03:00
|
|
|
|
- Некоторые типы запросов может ускорить за счет уменьшения объема данных в партиции.
|
|
|
|
|
|
2024-07-13 20:00:17 +03:00
|
|
|
|
**Основные типы разделения:**
|
|
|
|
|
- По ключу
|
|
|
|
|
- По диапазону
|
|
|
|
|
- По списку
|
|
|
|
|
- По хэш значению поля
|
2024-07-13 20:10:17 +03:00
|
|
|
|
|
2024-07-13 20:15:17 +03:00
|
|
|
|
**Советы:**
|
2024-07-13 20:10:17 +03:00
|
|
|
|
- Лучше не использовать BETWEEN для разбивки на партиции. Так как непонятно в какую партицию попадут пограничные значения
|
2024-07-13 20:15:17 +03:00
|
|
|
|
- Не стоит создавать партиции одной таблицы по разным полям.
|
2024-06-20 21:49:23 +03:00
|
|
|
|
|
2024-07-13 20:15:17 +03:00
|
|
|
|
Особенности СУБД:
|
|
|
|
|
- [Партиционирование в PostgreSQL](Партиционирование%20в%20PostgreSQL.md)
|
|
|
|
|
|
2024-06-20 21:49:23 +03:00
|
|
|
|
Пример создания в MySQL: ![](Pasted%20image%2020240620214648.png)
|