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

Sdílet
Vložit
  • čas přidán 20. 06. 2024
  • «MySQL и PostgreSQL: что «под капотом» и почему это важно знать прикладному разработчику. Реализация требований ACID, подходов к хранению данных и B-Tree индексов» - Никита Стрелков, разработчик e-commerce-подразделения, VK.
    Доклад с митапа #DevTalks ({Perm} Dev Meetup) (11 декабря 2021)
    MySQL и PostgreSQL сегодня - одни из самых популярных реляционных СУБД. Их активно используют разработчики в проектах самого разного уровня: от простейших веб-сайтов с нагрузкой в несколько запросов в сутки и объемом менее гигабайта, до геораспределенных высоконагруженных приложений с тысячами и более RPS и терабайтами данных.
    Многим разработчикам в течение карьеры приходится переходить с одной на другую или использовать одновременно несколько. Несмотря на кажущееся сходство, «под капотом» у этих СУБД важные различия, что сказывается на работе многих функций.
    В докладе раскрыты некоторые подробности устройства MySQL и PostgreSQL:
    - как обеспечивается транзакционность операций
    - что такое журналирование и какие виды журналов используются
    - различия в реализациях MVCC и применяемых блокировках
    - различия в реализации B-Tree индексов.
    Рассмотрены их сходства и различия, которые позволяют подходить к выбору СУБД для проектов более осознанно.
    Материалы доклада.
    ns-roxer.github.io/mysql-and-... - презентация
    dev.mysql.com/doc/internals/e... - MySQL Internals Documentation
    www.postgresql.org/docs/curre... - Postgres Internals Documentation
    www.interdb.jp/pg/ - The Internals of PostgreSQL by Hironobu Suziki
    severalnines.com/database-blo... - Comparing data stores postgresql mvcc vs innodb
    severalnines.com/database-blo... - Postgresql index vs innodb index understanding differences
    github.com/ChrisAntognini
    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

Komentáře • 26

  • @adwawdwad2499
    @adwawdwad2499 Před rokem +13

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

  • @devops-course
    @devops-course Před rokem +2

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

  • @gerzzog88
    @gerzzog88 Před rokem +4

    Хорош доклад, спасибо

  • @nikitajolobov4591
    @nikitajolobov4591 Před 3 měsíci

    спасибо огромное за доклад!

  • @alexeisafronov6627
    @alexeisafronov6627 Před rokem +3

    Крутой доклад)

  • @vrabosh
    @vrabosh Před rokem +4

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

  • @user-hq6nm2tf6j
    @user-hq6nm2tf6j Před 4 měsíci +1

    мне доклад понравился

  • @alexanderivanou8933
    @alexanderivanou8933 Před 8 měsíci +2

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

  • @OratayZB
    @OratayZB Před 2 lety

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

    • @pyramidhead9692
      @pyramidhead9692 Před 2 lety +4

      Я может что-то не догоняю, но mvcc не для этого. Или как?

    • @OratayZB
      @OratayZB Před 2 lety

      @@pyramidhead9692 да, таки через индексы надо работать. это ж вопрос 😁

    • @xyzw777
      @xyzw777 Před rokem +4

      @@OratayZB а почему нельзя сделать таблицу с историей координат и индекс по времени к ней? mvcc это про реализацию транзакции, а не про то что вы храните в своих таблицах, хранить можно все что душе угодно :)

  • @absurdradio
    @absurdradio Před 10 měsíci +1

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

  • @bagzbunny9006
    @bagzbunny9006 Před 3 měsíci

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

  • @barma1309
    @barma1309 Před 2 lety +3

    Постресс ещё где-то юзают?!

    • @vyacheslavspitsin303
      @vyacheslavspitsin303 Před 2 lety +5

      А не должны?

    • @pyramidhead9692
      @pyramidhead9692 Před 2 lety +14

      В свете последних событий, теперь будут везде.

    • @grantgml
      @grantgml Před rokem +1

      Массово переходим с оракла на постгресс

    • @AntiBandera
      @AntiBandera Před rokem

      да и довольно активно ....

    • @user-fu6vj6vh5p
      @user-fu6vj6vh5p Před rokem

      Нет.

  • @vasilich1051
    @vasilich1051 Před 3 měsíci

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

  • @k-samuel
    @k-samuel Před 6 měsíci

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

  • @ivanaaa6049
    @ivanaaa6049 Před rokem +2

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

    • @user-vb2vx3ds2j
      @user-vb2vx3ds2j Před rokem

      Обычно для тех, кто крутится возле наших университетов, это и так потолок. Голая теория без реального опыта и примеров, сравнений в производительности на реальных задачах. А потом начинается: Где нам найти сотрудника, который работал с psql, чтобы крутить на ней все базы 1С? Так выпускайте нормальных специалистов, а не тех, кто на выступлениях теорию пересказывает. Хотя, да, мы же сисадмины-эникеи, которым интересно только железо и провода, куда нам до таких замечательных специалистов?