Стрим про реляционные базы данных
В предыдущем большом стриме мы рассмотрели тему безопасности инфраструктуры и программного кода, включая тему безопасной записи и отображения данных из БД. А ещё раньше рассматривали ускорение работы web-приложений.
Во всех наших проектах мы используем базы данных. Как в монолитах, так и в примерах с модулями и микросервисами. И многим из нас в рабочих проектах порой приходится сочинять сложные SQL-запросы для разных выборок. И для решения таких задач желательно уметь использовать SQL в полную силу.
Но помимо ускорения программного кода самого приложения, большой вклад в производительность вносит скорость работы самой БД и оптимальность наших запросов к ней. А разработчики порой уделяют этому мало внимания. Либо это для их проекта сейчас неактуально, либо они просто не умеют этого делать.
Поэтому нам будет полезно разобраться с базами данных подробнее, чтобы начать работать с ними осознанно, а не наугад.
Так что пришло время провести большой всеобъемлющий практический стрим про реляционные базы данных, где рассмотреть разные темы на примерах работы с СУБД вроде PostgreSQL и MariaDB.
На стриме займёмся важной теорией и практикой. Определимся с терминами и понятиями из теории баз данных.
Исследуем паттерны и антипаттерны хранения разных данных.
Рассмотрим примеры построения и рефакторинга сложных запросов для повседневной работы и для сложной аналитики.
Обсудим нормализацию и денормализацию. Рассмотрим все нормальные формы и подберём оптимальные варианты раскладывания данных из разных практических предметных областей.
Исследуем домены и подберём оптимальные типы для хранения разных данных.
Разберёмся с разными типами индексов и с индекисрованием примитивных данных для выборок, векторных индексов и индексирование сложных JSON-структур.
Разберём важность или избыточность ограничений в БД в разных жизненных ситуациях.
Рассмотрим транзакции для атомарности записи и разные типы изоляции и блокировок для конкурентной работы.
Разберём работу с логами и с командой EXPLAIN для поиска медленных мест.
Рассмотрим подходы к оптимизации запросов нативно и при работе с ORM из разных фреймворков.
Рассмотрим способы написания последовательных миграций БД и программного кода для бесшовного деплоя приложений.
Рассмотрим масштабирование баз данных и реализуем в своём кластере разные типы репликации и шардирования.
Это и многие смежные вопросы по осознанной работе с реляционными базами данных как раз подробно рассмотрим на стриме.
Эта тематика актуальна всегда и про это всегда спрашивают на собеседованиях, так что лучше не откладывать это на потом. Так что до встречи с участниками в эфире и в записи!
Оплатить можно самому российской или иностранной картой или попросить работодателя оплатить от имени компании.
Для скидки можете сначала оформить в кабинете или от работодателя безлимитную подписку на наши полезные скринкасты про разработку. А потом или сейчас приобрести участие и получить запись можно там же в кабинете или здесь:
Дмитрий, смените PSP для иностранной карты плз. С Ташкента, с визы оплатить вообще не могу, подтверждение кода смс приходит, после ввода - error. Phpstorm, steam и любые сервисы оплачиваю с визы спокойно
UPD 1
В процессе подготовки стрима пришли идеи добавить дополнительные темы и рассказать про технические вещи вроде PgBouncer. Так что дополним программу и, чтобы всё влезло, разделим стрим на две части.
Первую часть посвятим теории БД и практикам написания и оптимизации SQL-запросов. Во второй части рассмотрим вспомогательные инструменты, конфигурацию, репликацию и шардирование.
В связи с этим потребуется дополнительное время на доработку программы. Вместо сегодняшнего вечера первую часть проведём позже. Если что-то поменяется и появятся другие идеи, то дата сдвинется дальше.
В любом случае о начале сообщу в рассылке и в канале.
UPD 2
Структура сильно переделана, материал подготовлен. Делаю финальные улучшения примеров, чтобы всё было красиво и полезно. Первую часть проведём в этот четверг 24 апреля в 19:00. Последняя скидка истечёт как раз ко времени начала.
До встречи с участниками в эфире и в записи!
UPD 3
Вчера выступил на конференции PHP Crew про производительность, а сегодня решил посмотреть прошедшие там доклады.
Обратил внимание на доклад "Оптимизация БД: когда индексы не работают" о случаях, когда планировщик решает не использовать индексы при выполнении запросов. И понял, что надо индексированию уделить больше внимания и такие ситуации рассмотреть подробнее.
Так что сегодня в материалы стрима добавлю больше примеров и наборов данных по теме индексов. За оставшееся время до начала сделать это не успею, так что вместо сегодняшнего вечера встретимся завтра.
Извиняюсь за очередной перенос, но так стрим будет лучше.
Или войти через: