На моём авторском курсе «Хардкорная веб-разработка» постгресу посвящено две большие главы. Первая глава по SQL в реализации PostgreSQL - 61 урок общей продолжительностью 9.5 часов, 182 задачи. Вторая глава об оптимизации запросов и настроек - 25 уроков на 5 часов контента и ещё 52 задачи. Приходите прокачиваться: course.to.digital.
Спасибо за доклад, очень полезная информация. Теперь ждем доклад от Дмитрия Гаврина с последующим ответом на вопрос: "что я не правильно рассказал?" Алексеем.)
Я вообще занимаюсь областью безопасности, но мне было просто интересно смотреть ) Продолжай выступать с лекциями в университетах!! Важно, чтобы в этой среде находились такие эксперты
Работаю с oracle уже 9 месяцев понимаю что автор говорит прям нужную базу. Разница конечно определенная есть с Postgres , но сути это не меняет. Респект 👍🏻
Отличный доклад, стоит еще добавить что не стоит забывать на чем крутится бд. Это в большинстве случаев какой то линукс который тоже может подкинуть проблем в виде айнод, скорости и/или деградации самих дисков и много чего другого.
Работаю на бэке второй месяц. Сейчас таска по оптимизации запросов при загрузке некоторых страниц. Стоит постгрес. Пришел с работы, а тут это. Очень своевременно. Благодарю за полезную информацию!
@@BOSOZOKU-v2j друг, привет. как видишь, я еще сам практически первопроходец, поэтому не считаю себя тем, кто может раздавать другим советы. плюс, у каждой компании свой стэк технологий, который может заметно разниться. единственное, в чем я точно уверен - пили свой пет-проект, там многому научишься. я очень много времени убил на бесконечные курсы, теоретические знания от которых ничего общего не имеют с реальной разработкой. А если все таки нужны технологии - посмотри пол часа джуновские вакансии, там найдешь что требуют)
1:06:08 вот тут прямо чувствуется какое-то противоречие: я понял так, что не надо ковырять постгрес на предмет оптимизации запроса ибо он лучше тебя знает как данные тащить, но при этом, ты должен понимать, как он работает, чтобы сразу составить правильный запрос.
На предмет оптимизации ковырять надо (когда стоит задача оптимизации запроса), а также писать сразу декларативно надо. Не надо писать императивно, навязывая свой план базе. Понимать как работает база надо, в идеале даже рекомендуется «думать как база», понимать, как можно выполнить запрос и как сделать это оптимально - это поможет оптимизировать запросы, а иногда и писать их сразу более правильно (то есть более декларативно).
Здравствуйте, спасибо за видео. Очень жаль, что тема vacuum, dead_tuples совершенно не была раскрыта, хотя это тоже может просаживать производительность и отжирать серверные ресурсы.
автовакуум по умолчанию включен и главное его не отключать, видя какой-то «левый процесс, поджирающий ресурсы» :) вакуум нужен, статистику собирать нужно и тд
@@t0digital по умолчанию он тоже настроен так себе :) autovacuum_vacuum_scale_factor установлен в 0.2, это получается должно изменится 10% записей в таблице, чтобы autovacuum туда пришел вновь, отработал и удалил dead_tuples. Но если таблица достаточно большая, 10% это будет уже довольно большое число сток, и в следующий заход отработать ему будет сложнее. К тому что надо стараться настраивать его более агрессивнее, чем с настройками по умолчанию :) И даже в этом случае, может не успевать. На курсах pgpro учат так, пусть чаще работает - но выполняет меньше работы.
Задавали вопрос про random page cost, его уменьшение с увеличением одновременно seq_page_cost позволяет управлять приоритом в выборе идти по индексу или последовательно. Из доки Reducing this value relative to seq_page_cost will cause the system to prefer index scans. То есть если задавать random_page_cost 1 а seq_page_cost 4 оптимизатор будет стараться использовать index scan. Но тут вопрос к дискам, надо понимать что это разговор не о HDD
Классный и очень полезный доклад! На работе столкнулся с задачей по кэшированию запросов в постгрес с помощью редиски. На вскидку не подскажете инструменты для этой задачи? Или ручками нужно также прописывать обновление редиски при изменении данных в бд?
Секционирование правильно называется - партицирирование. От слова партиция. Еще про шардинг можно бы было рассказать, это тоже неплохой способ оптимизации. А так все круто по делу! Спасибо за доклад!
Официальная переведённая документация на сайте Postgres Pro: postgrespro.ru/docs/enterprise/16/ddl-partitioning «5.11. Секционирование таблиц». Склоняюсь к использование этого термина как более правильного на русском языке.
исходники в Markdown, собирал PDF-версию в Marp github.com/alexey-goloburdin/knowledge-base/blob/main/%D0%94%D0%BE%D0%BA%D0%BB%D0%B0%D0%B4%20%C2%AB%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%BE%D0%B3%D0%BE%20%D1%81%D0%BB%D0%BE%D0%BD%D0%B0%20%E2%80%94%20PostgreSQL%C2%BB.md
На моём авторском курсе «Хардкорная веб-разработка» постгресу посвящено две большие главы. Первая глава по SQL в реализации PostgreSQL - 61 урок общей продолжительностью 9.5 часов, 182 задачи. Вторая глава об оптимизации запросов и настроек - 25 уроков на 5 часов контента и ещё 52 задачи. Приходите прокачиваться: course.to.digital.
Спасибо за доклад, очень полезная информация. Теперь ждем доклад от Дмитрия Гаврина с последующим ответом на вопрос: "что я не правильно рассказал?" Алексеем.)
Благодарю, многое прояснилось! Хотелось бы живой пример "плохого запроса" и как из него при помощи explain сделать хороший и сравнить результаты.
Классно рассказываешь, прям молодец! Здоровья тебе и побольше выступлений👍👍
Спасибооо!
Спасибо, отличная лекция!
Надеюсь, в следующий раз будет намного больше зрителей в зале
Я вообще занимаюсь областью безопасности, но мне было просто интересно смотреть ) Продолжай выступать с лекциями в университетах!! Важно, чтобы в этой среде находились такие эксперты
Нифига себе подгон! Еще не смотрел, но сразу лайк. Спасибо!!
Работаю с oracle уже 9 месяцев понимаю что автор говорит прям нужную базу. Разница конечно определенная есть с Postgres , но сути это не меняет. Респект 👍🏻
Для лучшего понимания читайте Домбровская, Новиков, Бейликова Оптимизация запросов в postgresql. Отличная книга, читается на одном дыхании.
Да, она упоминается в презентации 1:22:29
Для тех кто поверхностно знаком с устройством PostgreSQL я бы еще добавил “PostgreSQL 15 изнутри” Е. Рогов
Терпение и труд! У! А! Мастерами Pg не рождаются, мастерами PG становятся )
Пару раз базу грохнешь и станешь мастером
Идеальный формат подачи, понятно, легко, интересно и по делу)
Очень интересно! Спасибо за публикацию лекции!
Отличный доклад, стоит еще добавить что не стоит забывать на чем крутится бд. Это в большинстве случаев какой то линукс который тоже может подкинуть проблем в виде айнод, скорости и/или деградации самих дисков и много чего другого.
По-любому. Сегодня люди брезгуют пониманием контекста, а ведь там все ключи.
Это мега полезное видео!
Наконец-то я понял что это за "Попугаи" в cost.
Спасибо большое!
Как сказал автор, в курсе QTP от Postgres Pro это очень детально описывается.
Начал смотрел видосы по Postgres, думал ютюб подкинул в рекомендации старый видос, а он вышел 11 часов назад)
шикарный доклад! очень полезно 💌
Спасибооо!
О, я очень удивлена тому, насколько это оказалось полезно и интересно (что вообще дичь в случае меня и sql)
Спасибо большое! Очень круто!
Очень круто и полезно!
вот такого я не ожидал, вот это контентище) спасибо!
Работаю на бэке второй месяц. Сейчас таска по оптимизации запросов при загрузке некоторых страниц. Стоит постгрес. Пришел с работы, а тут это. Очень своевременно. Благодарю за полезную информацию!
Тоже изучаю питон для бека, подскажи пожалуйста что нужно еще знать помимо Джанго, sql запросов, буду очень благодарен
@@BOSOZOKU-v2j друг, привет. как видишь, я еще сам практически первопроходец, поэтому не считаю себя тем, кто может раздавать другим советы. плюс, у каждой компании свой стэк технологий, который может заметно разниться. единственное, в чем я точно уверен - пили свой пет-проект, там многому научишься. я очень много времени убил на бесконечные курсы, теоретические знания от которых ничего общего не имеют с реальной разработкой. А если все таки нужны технологии - посмотри пол часа джуновские вакансии, там найдешь что требуют)
@@BOSOZOKU-v2j привет, брат. посмотри вакансии на джуна пол часа, там увидишь, что требуется знать)
Спасибо, доклад очень полезный!!
Спасибо за доклад.
Слайды очень мелкие для просмотра с телефона, пришлось пожертвовать оратором и смотреть с увеличением.
Спасибо огромнейшее за лекцию! Очень классно. Ответы из зала разве что субтитрами сопроводить, а то не всё разборчиво.
Спасибо за классный доклад)
Вот бы еще по NoSQL базам так доступно увидеть. Из всего зоопарка, к примеру разобрать оптимизацию MongoDB)
Огонь, пожар - оч интересно и полезно)
очень круто, спасибо большое за лекцию
большое спасибо за доклад!
1:06:08 вот тут прямо чувствуется какое-то противоречие: я понял так, что не надо ковырять постгрес на предмет оптимизации запроса ибо он лучше тебя знает как данные тащить, но при этом, ты должен понимать, как он работает, чтобы сразу составить правильный запрос.
На предмет оптимизации ковырять надо (когда стоит задача оптимизации запроса), а также писать сразу декларативно надо. Не надо писать императивно, навязывая свой план базе. Понимать как работает база надо, в идеале даже рекомендуется «думать как база», понимать, как можно выполнить запрос и как сделать это оптимально - это поможет оптимизировать запросы, а иногда и писать их сразу более правильно (то есть более декларативно).
Спасибо за запись!
P.S. с "каталоха" орнул
Ууу, супер, спасибо за ролик!
Полезно! Спасибо за доклад!
!0 из 10 по всем пунктам: актуальность, стройность и понятность изложения, качественная запись!
Вот это полезный контент подъехал
Здравствуйте, спасибо за видео. Очень жаль, что тема vacuum, dead_tuples совершенно не была раскрыта, хотя это тоже может просаживать производительность и отжирать серверные ресурсы.
автовакуум по умолчанию включен и главное его не отключать, видя какой-то «левый процесс, поджирающий ресурсы» :) вакуум нужен, статистику собирать нужно и тд
@@t0digital по умолчанию он тоже настроен так себе :) autovacuum_vacuum_scale_factor установлен в 0.2, это получается должно изменится 10% записей в таблице, чтобы autovacuum туда пришел вновь, отработал и удалил dead_tuples. Но если таблица достаточно большая, 10% это будет уже довольно большое число сток, и в следующий заход отработать ему будет сложнее. К тому что надо стараться настраивать его более агрессивнее, чем с настройками по умолчанию :) И даже в этом случае, может не успевать. На курсах pgpro учат так, пусть чаще работает - но выполняет меньше работы.
спасибо, полезный комментарий!
Задавали вопрос про random page cost, его уменьшение с увеличением одновременно seq_page_cost позволяет управлять приоритом в выборе идти по индексу или последовательно. Из доки Reducing this value relative to seq_page_cost will cause the system to prefer index scans. То есть если задавать random_page_cost 1 а seq_page_cost 4 оптимизатор будет стараться использовать index scan. Но тут вопрос к дискам, надо понимать что это разговор не о HDD
The best!
если бы у меня в универе были такие преподаватели, я бы был суперменом
О, мой вуз в видос попал!
А есть возможность взять только часть курса, именно по постгре?)
@@bogochort8844 пока что нет, возможно в будущем сделаю
Классный и очень полезный доклад!
На работе столкнулся с задачей по кэшированию запросов в постгрес с помощью редиски. На вскидку не подскажете инструменты для этой задачи? Или ручками нужно также прописывать обновление редиски при изменении данных в бд?
Привет! Ручками. Но не при изменении данных в БД, а чаще всего просто по TTL для кэша (time to live) в редисе или просто раз в N минут
Алексей, на ютубе где-то есть твое выступление в МИРЭА про чистую архитектуру, которое ты упоминаешь в начале ролика?
нет
Ждем обзорчик нового ноута)
будет:)
@@t0digital точно? 👀
@@temcodes скорее всего!
Что Ян Цапник будет про постгресс рассказывать, к такому меня жизнь не готовила )))
Есть ли в видео информация по индексам в jsonb колонках?
нет
это очень годно
супер!! спасибо!!!!
Очень. Годно.
Что думаете про NL2SQL (natural language to SQL)?
А где прошлые доклады посмотреть?
@@Chel1k7 я тогда не делал записей
Секционирование правильно называется - партицирирование. От слова партиция.
Еще про шардинг можно бы было рассказать, это тоже неплохой способ оптимизации.
А так все круто по делу! Спасибо за доклад!
Официальная переведённая документация на сайте Postgres Pro: postgrespro.ru/docs/enterprise/16/ddl-partitioning «5.11. Секционирование таблиц». Склоняюсь к использование этого термина как более правильного на русском языке.
Большой IN можно переписать на = any($1)
🔥
Хорошее начало, sql кто-то знает?))
В ответ кивали! Но не все уверенно:)
топ контент
спасибо большое, очень информативно, где можно посмотреть 2 предыдущих выступления?
Спасибо! Их записей у меня нет, не записывал:)
а где презу скачать? хочу в заметки положить
исходники в Markdown, собирал PDF-версию в Marp github.com/alexey-goloburdin/knowledge-base/blob/main/%D0%94%D0%BE%D0%BA%D0%BB%D0%B0%D0%B4%20%C2%AB%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%BE%D0%B3%D0%BE%20%D1%81%D0%BB%D0%BE%D0%BD%D0%B0%20%E2%80%94%20PostgreSQL%C2%BB.md
партиционирование и секционирование это одно и тоже?
да
А для какого курса это рассказывается?
просто отдельный доклад
МИРЭА закончил в 2006))
в постгресе есть хинты вообще-то
через костыль (pg_hint_plan) можно, но это совсем не то же самое, что оракловые хинты
Первым затупит разработчик ;)
возможно даже до того, как затупит сам сервис:)
поседел это все пухтон довел
посидел, полежал. Такой день
@@_balancy_ типичный день на удалёнке, ХА
T9
ПОСТГРЭСКЛ))))
Первый!