MySQL и PostgreSQL: что «под капотом» и почему это важно знать прикладному разработчику
«MySQL и PostgreSQL: что «под капотом» и почему это важно знать прикладному разработчику. Реализация требований ACID, подходов к хранению данных и B-Tree индексов» — Никита Стрелков, разработчик e-commerce-подразделения, VK.
Доклад с митапа #DevTalks ({Perm} Dev Meetup) (11 декабря 2021)
MySQL и PostgreSQL сегодня — одни из самых популярных реляционных СУБД. Их активно используют разработчики в проектах самого разного уровня: от простейших веб-сайтов с нагрузкой в несколько запросов в сутки и объемом менее гигабайта, до геораспределенных высоконагруженных приложений с тысячами и более RPS и терабайтами данных.
Многим разработчикам в течение карьеры приходится переходить с одной на другую или использовать одновременно несколько. Несмотря на кажущееся сходство, «под капотом» у этих СУБД важные различия, что сказывается на работе многих функций.
В докладе раскрыты некоторые подробности устройства MySQL и PostgreSQL:
— как обеспечивается транзакционность операций
— что такое журналирование и какие виды журналов используются
— различия в реализациях MVCC и применяемых блокировках
— различия в реализации B-Tree индексов.
Рассмотрены их сходства и различия, которые позволяют подходить к выбору СУБД для проектов более осознанно.
Материалы доклада.
— презентация
- MySQL Internals Documentation
- Postgres Internals Documentation
- The Internals of PostgreSQL by Hironobu Suziki
- Comparing data stores postgresql mvcc vs innodb
- Postgresql index vs innodb index understanding differences
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
1 view
3310
881
2 months ago 00:41:38 8
Базы данных за 42 минуты. Теория
2 months ago 00:05:12 1
Профессия «Python разработчик» | Презентация онлайн курса
2 months ago 00:22:56 1
Go и MySQL. Зачем нам пул соединений? / Тигран Ханагян
2 months ago 00:09:57 1
cs 1.6 Продажа CSO зомби сборки+готовый сервер
2 months ago 00:49:49 1
Thesis: как забыть про ORM и перейти на нативные SQL-запросы / Валентин Удальцов (Happy Inc.)
2 months ago 00:42:20 1
Найти за полсекунды: сравниваем похожие фотографии / Петр Петренко (Badoo)
2 months ago 00:07:20 1
Уроки PHP для начинающих / #1 – Введение в язык PHP. Что такое PHP и как с ним работать?
2 months ago 00:38:17 1
More backed enums, explaining MySQL, and session deep-dives
2 months ago 01:37:57 1
Complete Backend API in Golang (JWT, MySQL & Tests)
2 months ago 00:11:10 19
Python+SQL работа с базами данных.
2 months ago 00:06:45 5
SQL команды. Как сделать резервную копию базы данных SQLite. Бэкап базы данных
2 months ago 00:18:10 1
Создаем простую форму регистрации и авторизации | PHP, MYSQL, HTML
2 months ago 05:19:31 1
HTML верстка сайта каталога интернет магазина на Gulp сборке. Моб. адаптация. GitHub pages. Часть 2