Вертикальное партиционирование разделяет столбцы таблицы, а горизонтальное — строки.
Вертикальное партиционирование:
- Разделение по столбцам.
- Группировка связанных столбцов или отделение rarely accessed столбцов.
- Помогает уменьшить размер строк, читаемых во время запроса, увеличивая производительность.
- Может приводить к необходимости JOIN операций для получения всех данных строки.
Горизонтальное партиционирование (шардинг):
- Разделение по строкам.
- Разделение данных на основе определенного критерия (например, по ID, дате).
- Позволяет распределить нагрузку между несколькими серверами/узлами.
- Улучшает производительность запросов, так как они обрабатывают меньший объем данных на одном узле.
- Увеличивает доступность и масштабируемость.
Сравнение:
| Критерий | Вертикальное партиционирование | Горизонтальное партиционирование |
|---|
| Что разделяется | Столбцы | Строки |
| Основная цель | Уменьшение размера строк, оптимизация чтения | Распределение нагрузки, масштабируемость |
| Сложность запросов | JOIN-ы для полных строк | Распределенные запросы/маршрутизация |
| Распределение данных | В пределах одного сервера | Между несколькими серверами/узлами |