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

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

Лиана Арифметова
АВТОРverifiedред. calcal.ru

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

Создатель и главный редактор

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

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

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

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

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

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

СМЕЖНЫЕ ИНСТРУМЕНТЫ

Похожие калькуляторы

15

SQL форматтер (beautifier)

Онлайн форматирование SQL-запросов с подсветкой синтаксиса. Поддержка MySQL, PostgreSQL, MS SQL. Форматирование, минификация и подсветка SQL.

/sql-formatter

Объединить PDF онлайн — без загрузки на сервер

Склейка PDF в браузере через pdf-lib. До 20 файлов, до 50 МБ каждый. Локально, без отправки на сервер (152-ФЗ).

/obyedinit-pdf-onlajn-besplatno

Сжать PDF онлайн — уменьшить размер локально

Сжатие PDF в браузере без потери качества. 3 уровня (object streams, удаление метаданных). До 50 МБ. Через pdf-lib, локально.

/szhat-pdf-onlajn-umenshit-razmer

Разделить PDF на страницы — извлечь нужные онлайн

Разделение PDF на страницы локально: каждая страница отдельным файлом, диапазон или группами. Через pdf-lib, без отправки на сервер.

/razdelit-pdf-na-stranicy-onlajn

JPG в PDF — конвертер с объединением

Конвертация JPG/PNG в PDF в браузере: до 30 картинок в один документ. Форматы A4/A3/Letter или подгонка под изображение.

/jpg-v-pdf-konverter

Повернуть страницы PDF онлайн

Поворот всех или указанных страниц PDF на 90/180/270° за миллисекунды. Lossless. Через pdf-lib, без отправки на сервер.

/povernut-pdf-stranitsy-onlajn

Водяной знак на PDF онлайн (кириллица)

Нанесение текстового знака («КОНФИДЕНЦИАЛЬНО», «ЧЕРНОВИК») на все страницы PDF. Поддержка русского текста через Canvas. 4 положения, регулировка прозрачности.

/dobavit-vodyanoj-znak-na-pdf

Нумерация страниц PDF онлайн

Проставьте номера страниц PDF в браузере: 4 формата, 6 положений, пропуск титульной, кастомный старт. Поддержка кириллицы. Через pdf-lib + Canvas.

/numerovat-stranitsy-pdf-onlajn

PDF в JPG / PNG — конвертер страниц

Рендеринг каждой страницы PDF в картинку через pdfjs-dist (Mozilla). 4 уровня качества: 96 / 150 / 300 DPI и lossless PNG. До 50 МБ.

/pdf-v-jpg-konverter-onlajn

Извлечь текст из PDF онлайн

Извлечение текста из PDF в браузере через pdfjs-dist (Mozilla). Plain text, с разделителями страниц или JSON. Файлы не уходят на сервер.

/extract-text-iz-pdf-onlajn

Сжать JPG до 100 КБ для документов

Сжатие JPG до точного размера в КБ (50, 100, 200, 500, 1000) через бинарный поиск quality. Госуслуги, ЕГЭ, банки. Через browser-image-compression.

/szhat-jpg-onlajn-do-100kb

Удалить EXIF из фото — GPS и метаданные

Удаление EXIF (геолокация, модель камеры, дата) из JPEG. Сначала показывает что внутри, потом удаляет. 152-ФЗ. В браузере, без отправки.

/udalit-exif-iz-foto-online

Изменить размер фото в пикселях

Изменение размера JPG/PNG/WebP с сохранением пропорций. 6 пресетов (Full HD, HD, 1080×1080, 9:16). Через Canvas API, без сервера.

/izmenit-razmer-foto-onlajn-px-mb

WebP в JPG / PNG — конвертер онлайн

Конвертация WebP → JPG / PNG в браузере. До 30 файлов одновременно. Через Canvas API, без сервера. Поддержка Госуслуг и старых форм.

/webp-v-jpg-png-konverter

Повернуть фото — точно по градусам

Поворот картинки на любой угол (90°/произвольный) с превью. Цвет фона для уголков при произвольных углах. JPG/PNG/WebP. Через Canvas.

/povernut-foto-onlajn-besplatno