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

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

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

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

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

⚖️

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

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

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

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

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

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

🧮

Калькулятор методологии исследований

Расчёт размера выборки, критерий хи-квадрат, корреляция Пирсона и мощность теста. Инструменты для научных и маркетинговых исследований.

💻

Калькулятор веб-производительности: бюджет страницы, изображения, JS-бандл, CWV

Комплексный калькулятор веб-производительности: бюджет веса страницы (3G/4G/Broadband), оптимизация изображений (WebP/AVIF, responsive), анализ JS-бандла (parse/compile, code-splitting, tree-shaking), критический путь рендеринга (TTFB, FCP), стратегия кэширования (CDN, TTL) и трекер Core Web Vitals (LCP, FID, CLS, TTI, TBT, Lighthouse score).

💻

Калькулятор сжатия данных: gzip, brotli, zstd, энтропия, архивы

Комплексный калькулятор компрессии: коэффициент сжатия, сравнение алгоритмов (gzip, brotli, zstd, lz4, snappy, deflate), экономия трафика и пропускной способности, энтропия Шеннона, оценка размера архивов (ZIP/TAR.GZ/7z) и HTTP-сжатие (Content-Encoding: gzip vs br).

🧮

Калькулятор образовательного кредита (94-ФЗ)

Расчёт платежей по образовательному кредиту с господдержкой (ставка 3%, 94-ФЗ). Льготный период, досрочное погашение, налоговый вычет по ст. 219 НК РФ.

📐

Калькулятор процентов

Посчитать проценты от числа, прибавить или вычесть процент, найти разницу. Удобный онлайн калькулятор с формулами.

⚙️

Калькулятор надёжности

Расчёты надёжности: Вейбулл, системная надёжность, испытания, анализ отказов, резервирование

💻

Калькулятор код-ревью: время, размер PR, дефекты, нагрузка

Комплексный калькулятор код-ревью: оценка времени проверки кода, анализ размера PR (XS/S/M/L/XL), покрытие ревью и bus factor, плотность дефектов и escape rate, нагрузка команды ревьюеров, метрики качества (churn, rework, first-pass yield).

💻

Калькулятор App Store: доход, ASO, UA, удержание и монетизация

Комплексный калькулятор для мобильных приложений: расчёт дохода (IAP, подписки, платные загрузки), ASO-оптимизация (ключевые слова, скриншоты, рейтинг), стоимость привлечения (CPI, ROAS), анализ удержания (Day 1/7/30/90), размер приложения и сравнение моделей монетизации. Поддержка RuStore и AppGallery.

🧮

Генератор CSS box-shadow

Визуальный редактор теней CSS. Offset, blur, spread, цвет. Множественные тени, inset. Копирование кода.

🏥

Ветеринарный калькулятор: дозировка, кормление, BCS и инфузия

Ветеринарные расчёты онлайн: дозировка лекарств, суточная норма кормления (RER/MER), упитанность BCS, инфузионная терапия, анестезия.

⚙️

Калькулятор промышленной автоматизации

Расчёты АСУТП: ПИД-регулятор, датчики, исполнительные механизмы, контуры управления, сети

🏥

Калькулятор площади ожогов (%TBSA)

Оценка площади ожоговой поверхности по правилу девяток Уоллеса и таблице Лунда-Браудера. Расчёт инфузии по формуле Паркланда.

🏥

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

Узнайте, сколько лет жизни и денег вы теряете из-за сигарет. Мотиватор для отказа от курения.

💰

Калькулятор дебиторской задолженности

Рассчитайте оборачиваемость дебиторской задолженности, DSO, резерв по сомнительным долгам и проведите aging-анализ просрочки.

🧮

Калькулятор зарплаты (гросс/нет)

Зарплата на руки из оклада. НДФЛ 13%/15%/30%, страховые взносы, районные коэффициенты. Россия 2024-2025.