Есть программный продукт? Добавьте его бесплатно. Человек прочитает заявку и опубликует её в течение дня.Есть продукт? Добавьте бесплатно.

Добавить продукт
Добавить продукт

Базы данных

Хранение данных и быстрый доступ к ним.

Базы данных

В этой категории пока нет продуктов

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

Добавить продукт

Что находится на этой полке

Места для хранения данных и быстрого доступа к ним: реляционные движки, документные хранилища, кэши «ключ-значение», поисковые индексы, хранилища временных рядов и управляемые сервисы, которые запускают любой из них за вас.

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

Анализ и отчёты по этим данным относятся к аналитике. Место, где работает само приложение, это хостинг и облако.

Выбор движка

Начните с формы данных и вопросов, которые вы будете им задавать.

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

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

Честный выбор по умолчанию: реляционный движок, пока что-то не докажет его недостаточность. Команды, которые начинают с экзотического хранилища, чтобы избежать проблемы масштабирования, которой у них нет, обычно сначала встречают другую, худшую.

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

Управляемый, собственный или serverless

Управляемые сервисы берут надбавку и снимают работу, которую иначе пришлось бы делать в неудобные часы: установку исправлений, переход на новые версии, переключение при сбое, проверку копий.

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

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

Вопросы, определяющие надёжность

  • Резервные копии: как часто, как долго хранятся и можно ли восстановиться на выбранный момент времени.
  • Восстановление: сколько занимает полное при вашем объёме данных, проверенное, а не обещанное.
  • Переключение при сбое: автоматическое или ручное, сколько длится и что видит приложение в это время.
  • Репликация: реплики для чтения, копии между регионами и отставание, которое должен терпеть ваш код.
  • Подключения: потолок и входит ли пул подключений в цену или его придётся запускать самим.

Проведите одно восстановление во время пробного периода. Резервная копия, которую никто не восстанавливал, это надежда, а в этой категории надежда обходится дороже всего.

Рост, миграции и то, что болит позже

Изменения схемы большой таблицы операция, которая портит выходные. Спросите, как движок справляется с добавлением столбца, сменой типа или построением индекса при продолжающемся трафике.

Храните миграции в системе контроля версий рядом с приложением с первого дня. Альтернатива, изменения, применённые вручную в консоли, порождает среды, различия между которыми никто не сможет восстановить.

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

Из чего складывается счёт

Вычисления, хранилище, хранилище копий, исходящий трафик, а в некоторых сервисах ещё единица для чтений и записей.

Исходящий трафик строка, которая удивляет людей, особенно когда аналитика или реплики качают большие объёмы между регионами. Хранилище редко уменьшается само, поэтому за удалённые строки можно платить, пока не отработает обслуживание. Копии для разработки и тестирования удваивают всё, если их не уменьшать и не останавливать на ночь.

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

Практики, благодаря которым база остаётся скучной

Цель в этой категории отсутствие драмы, и небольшое число привычек даёт большую часть результата.

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

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

Следите за медленными запросами как за рутиной, а не во время инцидента. Запрос, который сегодня занимает четыре секунды, в следующем квартале станет аварией, когда таблица вырастет.

И восстанавливайте резервную копию по расписанию. Копия, которую никогда не восстанавливали, это файл, а не защита, и в этой категории обнаружить это поздно дороже всего.

Частые вопросы

Управляемый сервис или собственный хостинг?

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

Что значит serverless для базы данных?

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

Как не привязаться к одному вендору?

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

Где база данных должна находиться относительно приложения?

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

Как обычно считается цена?

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