Систему управления базами данных выбирают в зависимости от задач бизнеса. Например, стартапам важен быстрый запуск с минимальными вложениями. А банкам нужно корректно сохранять данные, иначе клиенты недосчитаются денег. Разбираемся, как выбрать СУБД под проект с учетом потребностей компании.

База данных для запуска нового проекта

Проблема. Бизнес-модель новой компании может измениться после выхода на рынок. Например, сервис Groupon изначально объединял людей для решения проблем, и только потом перешел к продаже купонов.

Даже если бизнес-модель останется прежней, у компании могут появиться новые задачи и направления деятельности. Поэтому на старте рискованно выбирать систему управления базами данных, предназначенную для решения узких задач. Выбранная СУБД может не подойти для нового вида деятельности, а переносить данные из одной системы в другую бывает сложно и дорого.

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

База данных для тестирования новых продуктов и обновлений

Проблема. Стартапам важно быстро протестировать гипотезы и новые сервисы, чтобы понять, какие продукты или услуги востребованы у клиентов. При этом нужно максимально снизить расходы на запуск.

Крупные компании содержат собственную IT-инфраструктуру и команду специалистов для ее обслуживания. При этом им также нужно тестировать новые продукты и обновления сервисов, одновременно поддерживая стабильную работу имеющихся решений.

Развертывание или расширение собственной IT-инфраструктуры — дорогой и длительный процесс: надо докупать и настраивать оборудование, обслуживать его даже в период простоев.

Что делать. На старте может не быть смысла закупать оборудование и выстраивать собственную IT-инфраструктуру. А если она уже построена, вместо расширения можно вынести тесты в облако.

Если арендовать облачную базу данных, запустить которую можно в два клика, и платить только за используемые вычислительные мощности, получится сэкономить на покупке и обслуживании оборудования.

База данных для хранения данных в неизменном виде

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

Что делать. Такому бизнесу подходят реляционные базы данных, например, MySQL или PostgreSQL. Они позволяют хранить структурированную информацию, которая всегда классифицируется по одним и тем же критериям и не изменяется. Например, в банке это могут быть данные отправителя и получателя, сумма перевода.

В MySQL и PostgreSQL каждая строка или столбец сохраняют только один тип данных. Эти СУБД отличаются стабильностью, возникновение ошибок в данных практически невозможно. За счет особенностей их работы и высокой надежности обеспечивается сохранность и неизменность информации.

База данных для проектов с непредсказуемым ростом нагрузки

Проблема. В некоторых сферах нагрузка на IT-инфраструктуру зависит от сезона. Самый показательный пример — черная пятница. Так, с 29 ноября по 1 декабря 2019 года продажи в российских интернет-магазинах выросли на 30%. На сайтах «М.Видео» и «Эльдорадо» трафик увеличился на 80%, а количество заказов возросло вдвое.

Для периода пиковой загрузки требуются дополнительные вычислительные мощности. Можно масштабировать СУБД, то есть добавить к ней ресурсов, за счет новых серверов, но они дорогие, и большую часть года будут простаивать.

Что делать. Проще и дешевле масштабировать облачные базы данных — для проектов с непредсказуемой нагрузкой лучше всего подходят PostgreSQL или MongoDB в конфигурации, предназначенной для быстрого выделения ресурсов.

В случае резкого роста трафика компания получает дополнительные мощности облачной СУБД автоматически или по запросу. При этом оплачиваются только фактически потраченные ресурсы — лишних затрат нет.

База данных для аналитики и работы с big data

Проблема. Компании анализируют данные, чтобы оптимизировать бизнес-процессы и спрогнозировать популярность товаров или услуг, например:

  • транспортные компании оценивают загрузку по разным направлениям для разработки новых маршрутов;
  • ритейлеры анализируют спрос на товары, чтобы спланировать ассортимент магазинов;
  • в здравоохранении данные о заболеваниях используют для прогноза эпидемий.

Если информации для анализа очень много, то такие данные называют большими. Чтобы машинный алгоритм мог сделать выводы на их основе, необходимо быстро извлекать данные по заданным критериям. С этой задачей не справятся реляционные базы MySQL и PostgreSQL — они долго обрабатывают большие массивы информации.

Что делать. Тут нужна специальная аналитическая база данных, например ClickHouse. Она быстро выполняет аналитические запросы и обрабатывает более миллиарда строк за одну секунду. Значит, компания сможет быстро получать и использовать нужную информацию.

База данных для быстрой обработки запросов

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

Что делать. Для таких ситуаций подойдет Redis — нереляционная высокопроизводительная СУБД. Redis хранит данные в оперативной памяти, за счет этого отвечает на запросы в десятки раз быстрее, чем MySQL или PostgreSQL.

Его можно использовать самостоятельно или как дополнительную базу данных в случаях, когда число запросов резко растет и нужно быстро их обработать.

База данных для специализированных задач

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

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

Для PostgreSQL и Postgres Pro разработано большое количество дополнительных расширений. Например, расширение для криптографии шифрует личные данные для безопасной передачи по сети. В случае кражи злоумышленники получают только обезличенную информацию. А расширение PostGIS подходит для картографических сервисов, например, для поиска по географическим данным.

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

Чек-лист: какую базу данных выбрать для бизнеса

  1. У стартапа может смениться бизнес-модель. Поэтому лучше выбрать СУБД, подходящую для решения широкого круга задач, или заложить сразу две-три базы данных.
  2. Крупные компании и стартапы могут тестировать обновления или новые продукты в облачной базе данных, не дожидаясь поставок оборудования.
  3. В бизнесе, где нагрузка на инфраструктуру зависит от сезона, важно быстро масштабировать базу данных — это удобно делать в облаке.
  4. Хранить информацию в неизменном виде позволяют реляционные базы данных, например, MySQL или PostgreSQL.
  5. Для работы с большими данными подойдет ClickHouse — база данных, позволяющая быстро выполнять аналитические запросы.
  6. Быстро отвечать на запросы пользователей позволяет Redis — нереляционная высокопроизводительная СУБД, она хранит данные в оперативной памяти.
  7. Расширения для решения узких задач, например, шифрования данных или работы с картами, предоставляет реляционная СУБД PostgreSQL, некоторые кейсы позволяет решить Redis.