calcal.ru
DB Sizing Calculator v1.0

Размер Базы Данных

Рассчитайте размер таблиц, IOPS, память, индексы, репликацию и шардирование. Точные формулы для PostgreSQL и MySQL.

Загрузка калькулятора базы данных...
6
Модулей
IOPS
Анализ
B-tree
Индексы
WAL
Журнал

Зачем рассчитывать размер базы данных?

Правильный расчёт ресурсов — основа стабильной работы СУБД. Недооценка размера таблиц приводит к нехватке диска, неправильный расчёт IOPS — к деградации производительности, а ошибки в шардировании — к дорогостоящей перестройке архитектуры.

PostgreSQL: расчёт хранения

В PostgreSQL каждая строка занимает минимум 28 байт служебных данных (23 байта заголовок + alignment). Страница 8 КБ вмещает ограниченное число строк. Добавьте TOAST для больших полей, индексы и bloat после UPDATE/DELETE — и реальный размер может быть в 3-5 раз больше «чистых данных».

pg_total_relation_size = heap + toast + indexes

IOPS и дисковая подсистема

IOPS (Input/Output Operations Per Second) — ключевая метрика производительности дисков. NVMe SSD обеспечивает до 100 000 случайных операций в секунду, тогда как HDD — лишь 150-250. Разница в два порядка определяет возможности СУБД при случайном доступе.

IOPS_required = QPS × rows_per_query × (1 - cache_hit_ratio)

Архитектура масштабируемой БД

При росте нагрузки стратегия масштабирования зависит от узкого места. Если не хватает IOPS — переход на NVMe или RAID. Если не хватает памяти — увеличение shared_buffers. Если упирается один сервер — репликация или шардирование.

В России активно используются PostgreSQL (основная СУБД в госсекторе), ClickHouse (аналитика в Яндексе), а также распределённые системы YDB (Yandex Database) и CockroachDB.

1x

≤ 500 ГБ, ≤ 10K QPS

Один сервер PostgreSQL. Вертикальное масштабирование.
R

≤ 5 ТБ, ≤ 50K QPS чтения

Primary + Read Replicas. Streaming replication.
S

> 5 ТБ или > 50K QPS записи

Шардирование. Citus, Vitess, YDB, CockroachDB.

Возможности калькулятора

pg

Размер таблицы

Точный расчёт для PostgreSQL: страницы, fillfactor, TOAST, bloat, WAL и полный размер на диске.

IO

Анализ IOPS

Сравнение NVMe SSD, SATA SSD и HDD. Расчёт утилизации дисков и необходимого количества.

Idx

B-tree индексы

Глубина дерева, селективность, covering index. Определение: Index Scan vs Seq Scan.

Часто задаваемые вопросы

Размер таблицы в PostgreSQL складывается из нескольких компонентов: данные (heap), индексы, TOAST (для больших полей) и служебная информация. Каждая строка имеет заголовок 23 байта. Страница 8 КБ вмещает ограниченное число строк, зависящее от fillfactor. Используйте pg_total_relation_size() для проверки реального размера.
Требуемые IOPS зависят от QPS (запросов в секунду), среднего количества строк на запрос и cache hit ratio. Формула: IOPS = QPS × rows_per_query × (1 - cache_hit_ratio). При cache hit ratio 99% и 10 000 QPS нужно всего ~100 IOPS на чтение. Запись требует больше из-за WAL и fsync.
Общая рекомендация: 25% от RAM для выделенного сервера БД. Однако точный расчёт зависит от объёма горячих данных (working set). Если горячие данные помещаются в shared_buffers — cache hit ratio будет высоким (>99%). Используйте pg_stat_user_tables для анализа реальных обращений.
Шардирование необходимо, когда вертикальное масштабирование (RAM, CPU, SSD) и read-реплики не справляются. Типичные сигналы: объём данных >5 ТБ на одном сервере, QPS записи >50K, или требование к доступности выше, чем может обеспечить одна нода. Инструменты: Citus (PostgreSQL), Vitess (MySQL), YDB, CockroachDB.
Синхронная репликация гарантирует нулевую потерю данных (RPO=0), но добавляет задержку к каждому COMMIT (2 × сетевой RTT). Асинхронная быстрее, но при аварии primary можно потерять последние транзакции. Компромисс — synchronous_commit = remote_apply: данные применены на реплике, но не синхронно.
Хороший ключ шардирования имеет высокую кардинальность (UUID, user_id), равномерное распределение и минимизирует кросс-шардовые запросы. Плохой выбор (дата, статус) приведёт к hot spots. Для e-commerce часто используют user_id, для SaaS — tenant_id. Избегайте автоинкремента — все записи пойдут в один шард.
Bloat (раздутие) возникает из-за MVCC: при UPDATE и DELETE старые версии строк остаются в таблице до VACUUM. Без автовакуума bloat может составлять 50-200% от данных. Мониторьте pg_stat_user_tables (n_dead_tup) и настройте aggressive autovacuum для нагруженных таблиц.

Полезные ресурсы

PostgreSQL

Документация PostgreSQL

Официальная документация по управлению хранением, настройке памяти и репликации PostgreSQL.

pgTune

Настройка параметров

Автоматический генератор оптимальных настроек postgresql.conf на основе характеристик сервера.

YDB

Yandex Database

Распределённая СУБД от Яндекса. Горизонтальное масштабирование и отказоустойчивость для высоких нагрузок.

Лиана Арифметова
Создатель

Лиана Арифметова

Миссия: Демократизировать сложные расчеты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

⚖️

Отказ от ответственности

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые данным инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Медицинские, финансовые и профессиональные решения должны приниматься исключительно на основании консультации с квалифицированными специалистами — врачом, финансовым советником, инженером или другим профессионалом в соответствующей области. Не используйте результаты данного инструмента как единственное основание для принятия важных решений.

Ограничение ответственности. Авторы и разработчики сервиса не несут никакой ответственности за прямой или косвенный ущерб, возникший в результате использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию и применение полученных результатов.

Похожие инструменты

💰

Калькулятор торгового финансирования (аккредитив, факторинг)

Расчёт стоимости аккредитива (UCP 600), факторинга, форфейтинга и банковской гарантии. Сравнение инструментов торгового финансирования для ВЭД.

💻

Чекер HTTP-заголовков сайта

Анализ заголовков безопасности HTTP: CSP, HSTS, X-Frame-Options. Визуальный конструктор CSP, рекомендации.

🔄

Калькулятор координат: DD ↔ DMS, расстояние, азимут

Конвертер координат из десятичных градусов (DD) в градусы, минуты, секунды (DMS). Расчет расстояния и азимута между точками онлайн.

📐

Калькулятор интерполяции (Лагранж, сплайн)

Интерполяция функции онлайн: линейная, полином Лагранжа, кубический сплайн. Построение графика по точкам.

💰

Калькулятор налога с продажи квартиры

Рассчитайте НДФЛ при продаже квартиры или дома. Минимальный срок владения, имущественный вычет 1 млн ₽, расчёт по расходам, кадастровая стоимость.

🏗️

Калькулятор бруса

Расчёт бруса на дом: объём, количество, венцы, нагели, межвенцовый утеплитель.

🏗️

Калькулятор отмостки

Расчёт отмостки вокруг дома: площадь, объём бетона, щебень, песок, арматурная сетка, опалубка. Ориентировочная смета материалов.

💻

Калькулятор стоимости печати

Расчёт стоимости печати одной страницы, месячные и годовые расходы на принтер. Сравнение оригинальных, совместимых картриджей и перезаправки.

🧮

Калькулятор кровли

Длина стропил, высота конька, угол наклона и площадь крыши. Для односкатных и двухскатных крыш.

🧮

Калькулятор декретных выплат

Пособие по беременности и родам, единовременное пособие и ежемесячное по уходу до 1.5 лет. По 255-ФЗ.

🏗️

Калькулятор шумоизоляции

Расчёт шумоизоляции помещения: индекс Rw, подбор материала и толщины. Сравнение решений по цене и эффективности.

🏗️

Калькулятор расхода плиточного клея

Расчёт расхода плиточного клея по размеру плитки, типу основания и размеру шпателя. C1, C2, S1, для керамогранита.

💻

Калькулятор размера баннера

Размеры баннеров для VK, Telegram, YouTube, Яндекс Директ, Google Ads. Все форматы с рекомендациями по файлу.

💻

Калькулятор доступности (Accessibility): WCAG 2.1, контрастность, ARIA, скринридер

Комплексный калькулятор веб-доступности: проверка контрастности цветов (WCAG AA/AAA), конвертер размеров шрифтов (rem/em/px), оценка ARIA-совместимости, аудит клавиатурной навигации, готовность к скринридерам и соответствие WCAG 2.1 (ГОСТ Р 52872).

🏗️

Калькулятор ветровой нагрузки: СП 20.13330, районы, k(z)

Расчёт ветровой нагрузки по СП 20.13330: статическая и пульсационная составляющие, коэффициент k(z), аэродинамика.