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

preview_player
Показать описание
«MySQL и PostgreSQL: что «под капотом» и почему это важно знать прикладному разработчику. Реализация требований ACID, подходов к хранению данных и B-Tree индексов» — Никита Стрелков, разработчик e-commerce-подразделения, VK.

Доклад с митапа #DevTalks ({Perm} Dev Meetup) (11 декабря 2021)

MySQL и PostgreSQL сегодня — одни из самых популярных реляционных СУБД. Их активно используют разработчики в проектах самого разного уровня: от простейших веб-сайтов с нагрузкой в несколько запросов в сутки и объемом менее гигабайта, до геораспределенных высоконагруженных приложений с тысячами и более RPS и терабайтами данных.
Многим разработчикам в течение карьеры приходится переходить с одной на другую или использовать одновременно несколько. Несмотря на кажущееся сходство, «под капотом» у этих СУБД важные различия, что сказывается на работе многих функций.

В докладе раскрыты некоторые подробности устройства MySQL и PostgreSQL:
— как обеспечивается транзакционность операций
— что такое журналирование и какие виды журналов используются
— различия в реализациях MVCC и применяемых блокировках
— различия в реализации B-Tree индексов.

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

Материалы доклада.

0:00 - Представление спикера
1:38 - О чем доклад
3:28 - Почему важно знать разницу
4:35 - Сравнение функиональности
5:49 - Процессы PostgreSQL
9:19 - Процесс и потоки MySQL
14:08 - Этапы выполнения запроса в PostgreSQL
17:45 - Этапы выполнения запроса в MySQL
21:10 - Какую статистику используют СУБД для построения плана запроса
23:51 - Пара слов про ACID
25:00 - MVCC в PostgreSQL
31:30 - MVCC в MySQL InnoDB
33:49 - Сравнение реализаций MVCC
39:07 - Индексы и их классификация
40:28 - Индексы в PostgreSQL
42:52 - Индексы в MySQL
47:00 - Секция Q&A

#devtalks #devtalks_russia
Рекомендации по теме
Комментарии
Автор

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

adwawdwad
Автор

🎉 cool speaker! Thanks for db masterclass! DevOps forever in our minds!

devops-course
Автор

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

vrabosh
Автор

Про откат транзакции в MySQL и Undo Log наврал, про HASH индексы также. Механику MySQL знает недостаточно для доклада. Но по PG рассказал хорошо. Главная мысль: если вам нужен OLAP, то PG рулит, если вам достаточно OLTP, то никаких бонусов от PG вы не получите, кроме замедления. Хотелось бы что-то услышать про гонку запросов и как она разрешается в PG и MySQL, но эта тема не раскрыта. Зачем ставился акцент на отличиях (PG=мультипроцесс, а MySQL=мультипоток) совершенно не ясно. И да, спикер подтвердил, что в большинстве случаев PG работает медленнее MySQL

alexanderivanou
Автор

на вопрос по каким критериям выбирать базу данных Никита дает ответ: нужно выбирать

absurdradio
Автор

Уважаемые прикладные разработчики, расскажите пожалуйста, как вам помогает в работе то, что вы знаете отличия реализации в MVCC между MySQL и Postgres?

bagzbunny
Автор

юзверский вопрос: mvcc в postgres может обрабатывать историю значений? например если мы имеем историю координат на карте и отслеживаем траекторию перемещения объекта по карте? то есть работать не с текущим положением объекта, а с его траекторией?

OratayZB
Автор

На 5 минуте отключил- автор в своих абстракциях варится

vasilich
Автор

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

k-samuel
Автор

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

ivanaaa