Базы данных в HighLoad. Советы и рекомендации по работе с БД в крупных проектах
Мы работаем в большой высоконагруженной транзакционной системе, что добавляет определенные особенности в процесс разработки. Путём проб и ошибок, мы вывели для себя ряд стандартов и правил для работы с реляционными базами данных, которых придерживаемся уже длительное время. Эти рекомендации позволяют значительно снизить количество инцидентов и сосредоточиться на решении бизнес задач. Тайминги: 00:00 Вступление 01:12 Naming 02:32 Первичные ключи 06:51 Внешние ключи 10:07 Триггеры и курсоры 10:35 Nullable и Default поля 13:16 Связи "многие ко многим" 14:12 Комментарии 14:34 Служебные поля 17:44 Для разработчиков 24:12 Заключение Пример DDL, которое обещал в видео: create table sample_schema.sample_entities ( id uuid constraint sample_entities_pk primary key, field_one int, field_two varchar, create_time sample_schema.bigint not null, create_user varchar not null, last_modify_time sample_schema.bigint not null, last_modify_user varchar not null ); comment on table sample_schema.sample_entities is 'Пример таблицы'; comment on column sample_schema.sample_entities.id is 'PRIMARY KEY'; comment on column sample_schema.sample_entities.field_one is 'Комментарий к полю 1'; comment on column sample_schema.sample_entities.field_two is 'Комментарий к полю 2'; comment on column sample_schema.sample_entities.create_time is 'Указывается однократно в момент добавления записи и больше не меняется. При этом: Тип поля - целое число, которое содержит значение Unix-время. Такой тип исключает разную интерпретацию разными back разработчиками видов времени (со смещением или без). Для возможности увидеть "человеческое представление данных" в SQL запросе можно использовать функцию to_timestamp(create_time / 1000)'; comment on column sample_schema.sample_entities.create_user is 'Строка (поле типа varchar), в котором хранится идентификатор пользователя/клиента, который добавлял запись'; comment on column sample_schema.sample_entities.last_modify_time is 'Устанавливается при добавлении записи и обновляется при каждом изменении записи Требования совпадают с create_time. Для возможности увидеть "человеческое представление данных" в SQL запросе можно использовать функцию to_timestamp(last_modify_time / 1000)'; comment on column sample_schema.sample_entities.last_modify_user is 'Строка (поле типа varchar), в котором хранится идентификатор пользователя/клиента, который добавлял/редактировал запись.';

Сеть и сокеты. База для backend разработчика.

Как устроена База Данных? Кластеры, индексы, схемы, ограничения

Вы пишете логи неправильно! Всё о логах в коммерческой разработке

9 вещей, которые я хотел бы знать в начале карьеры в айти

Нормальные формы базы данных. Три нормальных формы, нормализация и денормализация БД

HR — бесполезны. Новые исследования всё доказали

ВСЁ про Базы Данных в одном месте / ХАЙЛАЙТЫ

God Says:"TAKE THIS MESSAGE SERIOUSLY, BECAUSE ONLY YOU ARE SEEING IT"/God Message Now/God Message

Лучший Гайд по NoSQL для Начинающих | Redis, Mongo, Cassandra

Feature Toggles! Безопасные релизы с фича флагами

Подготовка к собесу - Оптимизация запросов

Modern Databases: How to Choose a DBMS in 2023? / Oleg Bondar (Yandex)

Device Searches 2026: What the FSB Looks for at the Border and How to Hide Your Data

Владимир Ситников — B-tree индексы в базах данных на примере PostgreSQL

Как бы я сейчас изучал 1С. Не повторяй мои ошибки!

База по Базам Данных - Storage (Индексы, Paging, LSM, B+-Tree, R-Tree) | Влад Тен Систем Дизайн

Spring Boot. БЫСТРЫЙ старт. Backend

MySQL и PostgreSQL: что «под капотом» и почему это важно знать прикладному разработчику

System Design - теория шардирования | Как масштабировать базы данных

