Оценка размера базы данных
Мне было интересно, что вы делаете при разработке нового приложения с точки зрения оценки размера базы данных.
Например, я планирую запустить веб-сайт, и мне трудно оценить, какого размера я могу ожидать увеличения моей базы данных. Я не ожидаю, что вы скажете мне, какого размера будет моя база данных, но я хотел бы знать, есть ли общие принципы для ее оценки.
Например, когда Джефф разработал StackOverflow, он (предположительно) предположил размер и рост своей базы данных.
Моя дилемма заключается в том, что я выбираю хостинговое решение для своего веб-приложения (на данном этапе речь идет о стоимости) и, желательно, не хочу стрелять себе в ногу, не покупая достаточно места для SQL Server (они берут за это дополнительную плату. ).
Ответов (4)4
Если у вас есть схема базы данных, определение размера довольно просто ... это всего лишь примерные строки * средний размер строки для каждой таблицы * какой-то фактор для индексов * какой-то другой фактор для накладных расходов. Учитывая смехотворно низкую стоимость хранилища в настоящее время, определение размера часто не является проблемой, если вы не собираетесь иметь сайт с очень высокой посещаемостью (или создаете приложение для крупного предприятия).
Для моих собственных упражнений по выбору размеров я всегда создавал список таблиц Excel:
- столбец 1: каждая таблица, которая будет расти
- столбец 2: предполагаемый размер столбца в байтах
- столбец 3: приблизительное количество строк (в год или максимум, в зависимости от приложения)
- столбец 4: коэффициент индекса (я всегда устанавливал 2)
- столбец 5: коэффициент накладных расходов (я всегда устанавливал 1,2)
- столбец 6: общий столбец (столбец 2 X 3 X 4 X 5)
Сумма столбца 6 (общий столбец) плюс начальный размер вашей базы данных без таблиц роста и есть оценка вашего размера. Вы можете стать более научным, но это мой быстрый и грязный путь.
Мои практические правила, которым нужно следовать,
- сколько пользователей я ожидаю?
- какой контент они могут публиковать?
- насколько велика запись пользователя?
- насколько велик каждый элемент контента, который может добавить пользователь?
- сколько я буду добавлять?
- как долго будут жить эти элементы контента? навсегда? всего пару недель?
Умножьте размер записи пользователя на количество пользователей; сложите количество пользователей, умноженное на размер элемента контента; умножьте на два (для удобного коэффициента выдумки).
Определять:
- сколько посетителей в день, V
- сколько записей каждого типа будет создано за посещение, N1, N2, N3 ...
- размер каждого типа записи, S1, S2, S3 ...
РЕДАКТИРОВАТЬ: забыл коэффициент индекса, который, как правило, составляет 2 раза
Общий прирост за день = 2 * V * (N1 * S1 + N2 * S2 + N3 * S3 + ...)