digital-garden/_inbox/Партиционирование в БД.md

43 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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