В последнем крупном стриме мы обсудили вопросы безопасности в инфраструктуре и программном коде, затронув темы безопасного сохранения и извлечения данных из баз данных. Ранее мы также говорили об ускорении работы веб-приложений.
В каждом из наших проектов мы используем базы данных, будь то в монолитных архитектурах или в случае модулей и микросервисов. Часто в рабочих проектах нам приходится составлять сложные SQL-запросы для различных выборок. Для выполнения таких задач важно уметь применять SQL на полную мощность.
Помимо ускорения программного кода самого приложения, значительный вклад в производительность вносит скорость работы самой БД и оптимизация наших запросов к ней. Однако разработчики часто не придают этому должного значения. Либо в их проектах это сейчас не актуально, либо они просто не уверены, как это сделать.
Поэтому полезно будет углубленно разобраться в базах данных, чтобы начать работать с ними осознанно и эффективно, а не наугад.
Пора провести всеобъемлющий практический стрим, посвященный реляционным базам данных, где мы можем изучить различные темы, используя примеры работы с СУБД, такими как PostgreSQL и MariaDB.
На нашем стриме мы сосредоточимся на основах теории и практики. Определим ключевые термины и понятия в теории баз данных.
Проанализируем как паттерны, так и антипаттерны для хранения различных типов данных.
Изучим примеры создания и оптимизации сложных запросов, которые пригодятся как в повседневной, так и в глубокой аналитической работе.
Погрузимся в нормализацию и денормализацию данных, исследуем все нормальные формы и выберем наилучшие варианты для различных областей.
Изучим домены и определим оптимальные типы данных для их хранения.
Рассмотрим различные виды индексов, их применение для простых выборок, а также для работы с векторами и сложными JSON-структурами.
Обсудим необходимость или избыточность ограничений в базе данных в различных ситуациях.
Изучим транзакции для обеспечения атомарности операций, а также различные типы изоляции и блокировок для работы в конкурентной среде.
Поймем, как работать с логами и использовать команду EXPLAIN для выявления проблемных участков.
Изучим методы оптимизации запросов, как нативно, так и при использовании ORM различных фреймворков.
Рассмотрим методы создания последовательных миграций для баз данных и кода для плавного развертывания приложений.
Изучим масштабирование баз данных, реализуя различные подходы к репликации и шардированию в нашем кластере.
Эти и многие другие вопросы по эффективной работе с реляционными базами данных подробно обсудим на стриме.
Эти темы всегда актуальны и часто задаются на собеседованиях, так что лучше изучить их заранее. До встречи в эфире и записи!