Андрей Сальников - Индексы в PostgreSQL. Как понять, что создавать

  Рет қаралды 56,119

JPoint, Joker и JUG ru — Java-конференции

JPoint, Joker и JUG ru — Java-конференции

Күн бұрын

Пікірлер
@esabkosabko4902
@esabkosabko4902 2 жыл бұрын
Очень хороший доклад получился. С одной стороны простой, с другой хорошо структурирован и покрывает тему индексов с практической точки зрения. Спасибо, Андрей.
@jellyfish6265
@jellyfish6265 Жыл бұрын
сколько ж надо всякой хероты просмотреть, чтобы найти это гениальное видео
@КимЧенОрк
@КимЧенОрк 6 ай бұрын
хахаха
@MrElInfinito
@MrElInfinito 25 күн бұрын
Материалы на pg pro+ книжка Рогова - все что нужно, дальше только практика. Уши завяли смотреть это «соплежевание» + бьющие в перепонки причмокивания.
@vladislavkislitsyn8470
@vladislavkislitsyn8470 23 күн бұрын
@@MrElInfinito официальная документация - все что нужно, дальше только практика.
@MrElInfinito
@MrElInfinito 22 күн бұрын
@@vladislavkislitsyn8470 не согласен, ибо опытные люди делятся своими "бест практис", а читая чисто официалку и варясь в собственном соку можешь нарукожопить. Если работаешь с такими же практиками, регулярно обсуждая рабочие моменты...то да - можно чисто официалку читать.
@РадикХисамутдинов
@РадикХисамутдинов Жыл бұрын
Очень классный доклад, спасибо Андрею Сальникову за доклад!
@mgsfdgsfdgsgssdgrsdgdrgsr16
@mgsfdgsfdgsgssdgrsdgdrgsr16 8 ай бұрын
Отличный доклад, информативный, без воды. На 1.75 хорошо слушается.
@sergeyz4591
@sergeyz4591 4 ай бұрын
Без воды? Серьёзно? Там сплошная вода. Частичные индексы осваиваются за 2 минуты. Я всё надеялся что-то стоящее там увидеть, но увы! Более того, докладчик хорошо обосрался с порядком составных индексов.
@mgsfdgsfdgsgssdgrsdgdrgsr16
@mgsfdgsfdgsgssdgrsdgdrgsr16 4 ай бұрын
@@sergeyz4591 ну, если обосрался, то напиши в коментах, как правильно. Думаю, многие тебе будут признателтны.
@gregoryrubies6045
@gregoryrubies6045 Жыл бұрын
"Ты считаешь себя умнее базы данных?" - лучший ответ, по моему )
@АлексейХудокормов
@АлексейХудокормов 9 ай бұрын
Супер-доклад, раскрываются неочевидные моменты.
@hhh-sn2kj
@hhh-sn2kj 10 ай бұрын
офигенный доклад. Спасибо!
@alexanderyurlov8319
@alexanderyurlov8319 9 күн бұрын
Благодарю за доклад. Очень полезный.
@eugenevodyanko4641
@eugenevodyanko4641 9 ай бұрын
Доклад, конечно, достойный. Но явно вводит в заблуждение пример с idx(created,state) - это эффективно будет работать только в частном случае распределения данных. В общем случае (и для разных СУБД), для реализации очереди или Top-N вариант с idx(state,created) будет гораздо более предсказуемым. Здесь явно не хватило подробных планов и сравнений. Кроме того, если таблица очень волотильная, то статистика может показывать «мультики», иногда ее следует отключить или «заморозить», чтобы оптимизатор не оптимизировал под «вчерашний день».
@АлексейКузенков-г4и
@АлексейКузенков-г4и 3 ай бұрын
Доклад перевернул мое пониманик к тому, как надо создавать индексы🙏
@Alex-qy5mh
@Alex-qy5mh 11 ай бұрын
Очень добротный доклад, все по существу
@pick-pock
@pick-pock Жыл бұрын
Докладчик не очень быстрый, тк не хватает индекса
@ИгорьКолесник-в3п
@ИгорьКолесник-в3п 3 ай бұрын
)))
@user-bl2zs2vt5s
@user-bl2zs2vt5s 2 жыл бұрын
Спасибо, Андрей!
@stanislavzemlyakov5442
@stanislavzemlyakov5442 Жыл бұрын
Максимально интересно.
@oleg_shulga
@oleg_shulga 9 ай бұрын
Спасибо за видео. Очень хороший доклад.
@Narryel
@Narryel Жыл бұрын
Крутой доклад, спасибо Андрею!
@3dvfx1
@3dvfx1 Жыл бұрын
Андрей, Вас очень приятно слушать, Вы объясняете очень доходчиво, большое спасибо! 🤝
@antonmuzeev
@antonmuzeev Жыл бұрын
Блин! Век живи, век учись! Буквально недавно прошёл курс от Postgres Pro по оптимизации запросов и смотря этот доклад, про себя думаю "Наверно мало чего нового узнаю"... А НЕТ! Очень крутой момент по индекс на ForeignKey. Я знал, что его нужно создавать, если планируется делать JOIN, но про кейс с удалением каскадом вообще не думал. За это огромное спасибо!
@gennadyshevchenko7940
@gennadyshevchenko7940 3 ай бұрын
видимо курс так себе?
@andreymironov697
@andreymironov697 9 ай бұрын
Очень содержательно! Жаль, что Андрею не предоставили больше времени
@maxx27i
@maxx27i Жыл бұрын
Спасибо за знания! Очень полезный доклад! 🔥
@selub1058
@selub1058 4 ай бұрын
Спасибо. Классный доклад. 🎉
@Mr43046721
@Mr43046721 3 ай бұрын
Очень классный доклад, Андрей прям гуру)) как и все чуваки из DataEgret
@handletito
@handletito 5 ай бұрын
Шикарное!!!
@СергейС-с5т
@СергейС-с5т 6 ай бұрын
музыкальный инструмент на фоне - весьма нетонкий троллинг)))
@Romerosmr
@Romerosmr 11 ай бұрын
Интересный разбор, только надо было всетаки по просьбе Владимира включить buffers в analyze. Тогда стало бы видно, что если первым полем в составном индексе сделать поле которое с критерием на равенство (статус), а вторым интервальный критерий (дату), то было бы меньше чтений блоков индекса, т к плотность нужных данных в листьях индекса была бы выше и соотв такой вариант эффективнее... и что ценно для ДБА - меньший IO
@Nfix106
@Nfix106 8 ай бұрын
Хороший доклад, спасибо!
@greenbear8179
@greenbear8179 Жыл бұрын
прекрасный доклад
@ВасилийГоловко-д9и
@ВасилийГоловко-д9и 10 ай бұрын
Не понял немного пример по индексу, где мы создали по (дата, state). Если я захочу выбрать не обработанные транзакции по state, то индекс не будет работать. Чтобы работал мне надо в запросе использовать дату. А как я узнаю с какой даты у меня начинаются необработанные транзакции не используя для этого дополнительный запрос?
@user-lv3hn6uz4e
@user-lv3hn6uz4e 2 жыл бұрын
Почему сказано что VACUUM не чистит индексы? Это конечно можно отключить и он их реже чистит чем таблицу, но чистит и можно явно указать чтобы чистил всегда.
@IlyaMatveev
@IlyaMatveev Жыл бұрын
5:26, oltp голосом, на слайде опечатка (olpt) Online Transaction Processing
@bit_happens_
@bit_happens_ Жыл бұрын
Спасибо!!!
@danku3498
@danku3498 Жыл бұрын
Доклад интересный и полезный, спасибо! В целом со всеми моментами в видео согласен, но есть дополнение о котором не было сказано, нужно учитывать типы данных при его создании и текущий пример с фруктами можно было улучшить если сделать таблицу типов фруктов, ее id будет иметь маленький целый тип и индекс по двум прям будет значительно меньшего объема, а также чем меньше тип поля в индексе тем и объем меньше и стоимость его использования ниже..
@jellyfish6265
@jellyfish6265 Жыл бұрын
запили свое видео, посмотрим сколько будет просмотров
@vladimir.kravets
@vladimir.kravets 2 жыл бұрын
Если в исходном запросе (слайд 10) убрать limit, то разве перевернутая версия "от dba" будет адекватно работать? Мне кажется этот момент как-то очень не явно обозначен и, думаю, именно по этому вызвал много вопросов во время самого доклада. Тут ведь риск, что люди после доклада могут побежать переворачивать "как dba" там где надо и где не надо.
@ogyct
@ogyct Жыл бұрын
Многое не знал. Спасибо за доклад. Если честно, до сих пор не понимаю, в чем смысл индекса по ПК, ведь это всегда уникальные значения.
@oleglevin7742
@oleglevin7742 Жыл бұрын
Для поддержки уникальности нужна проверка, занято ли значение ПК, то есть выполняется поиск. А чтобы поиск был быстрым, нужен индекс.
@ogyct
@ogyct Жыл бұрын
@@oleglevin7742 а как индексирование ускорит поиск по уникальным величинам? Я всё время себе представлял индекс как из энциклопедий, где для одного слова выписаны страницы, где оно встерчается
@ogyct
@ogyct Жыл бұрын
хотя вроде уже понял, индекс это упорядоченный список, поэтому поиск по нему быстрее. Поправьте если ошибаюсь.
@oleglevin7742
@oleglevin7742 Жыл бұрын
​@@ogyct если говорить про b-деревья, на которых обычно строятся индексы, то принцип поиска и правда такой же, как бинарный поиск. Но структура - это, понятное дело, дерево :) То есть, оно состоит из узлов, каждый из которых хранит набор ключей и ссылки на дочерние узлы. Ключи в каждом узле отсортированы. Пара соседних ключей задает границы диапазона ключей дочернего узла. Применительно к базам данных рассмотрим два этапа: поиск ключа в узле и переход к следующему узлу. - Поиск ключа в узле быстрый, так как узел уже в оперативной памяти. Должно быть тут используется бинарный поиск. - Переход к дочернему узлу медленный, так как нужно читать с диска (если индекс не влез в оперативную память). Где-то видел, что обычно узлы хранят от 50 до 2000 ключей. То есть узлы крупные, зато дерево небольшое в высоту. Соответственно, количество чтений с диска сильно меньше, чем если бы использовались другие деревья поиска или просто упорядоченный список.
@SARFEX
@SARFEX 11 ай бұрын
Полезно ❤
@riyazvagapov1449
@riyazvagapov1449 4 ай бұрын
крутой доклад
@user-007-1
@user-007-1 Жыл бұрын
Не совсем понял - зачем создавать индекс на поле created_at, да ещё и ставить его первым? Мы же выбираем записи с совсем другим полем
@pashk1ns
@pashk1ns 9 ай бұрын
Для кейса из презентации подходит пример из доки: Важный особый случай представляет ORDER BY в сочетании с LIMIT n: при явной сортировке системе потребуется обработать все данные, чтобы выбрать первые n строк, но при наличии индекса, соответствующего столбцам в ORDER BY, первые n строк можно получить сразу, не просматривая остальные вовсе.
@Julia-nr8ne
@Julia-nr8ne 5 күн бұрын
Мастер-класс по игнорированию просьбы включения buffers в план запроса😂
@araikrasoyan702
@araikrasoyan702 3 күн бұрын
Андрей говорит медленно и долго и интересно, дайте пожалуйста ему все сказать что он хочет сказать, это бесценно и интересно, посидим немного дольше, ничего страшного
@crazym8nd
@crazym8nd 7 ай бұрын
я как будто на лмампочку смотрел от этих флешбнгов на фоне
@jellyfish6265
@jellyfish6265 Жыл бұрын
охуенный доклад
@MrAlexandrStv
@MrAlexandrStv 10 ай бұрын
топчик
@С.Семенчук
@С.Семенчук 6 ай бұрын
С одной стороны видно что есть весомый опыт, с другой какие-то заблуждения и суеверия. Называть индекс костылем это за колхоз и отсебятина? Давайте еще объявим костылем все алгоритмы сортировки с дополнительной памятью. Сортировка пузырьком вот единственно истинная сортировка.
@outlaw4Iife
@outlaw4Iife 10 ай бұрын
постгресовый ведьмак
@walcermelodia
@walcermelodia Жыл бұрын
лол докладчик родственник олега тинькова?
@Happy-s8l1c
@Happy-s8l1c 5 ай бұрын
Лол, какие-то курсы по юмору проходил?
@walcermelodia
@walcermelodia 5 ай бұрын
@@Happy-s8l1c лол а не пойти бы тебе лесом?)))
@crypto-mech-arena
@crypto-mech-arena Жыл бұрын
Вот так наслушаешься этих горе докладчиков. И потом индексы не правильно работают. Индекс по двум полям будет работать, только по первому полю и обеим но не по второму.
@crypto-mech-arena
@crypto-mech-arena Жыл бұрын
pg_stats показывает частоту вхождения только включенной настройке в конфиге.
@ВасилийГоловко-д9и
@ВасилийГоловко-д9и 10 ай бұрын
кстати согласен. это очень важный момент должен быть был озвучен в докладе. что порядок очень важен и потом как используется в where. Даже в его примере не используется дата, т.к. будут выбираться не обработанные транзакции, там нет смысла включать дату, если только не разбивать по каким-то группам дат, если транзакций таких очень много. Но тогда лучше уже по лимит их брать и обрабатывать
@iuriigalchenko7673
@iuriigalchenko7673 4 ай бұрын
Только услышал от докладчика слово Ява, сразу отпало желание смотреть доклад😂😂😂
@Antonio-ib6ii
@Antonio-ib6ii 4 ай бұрын
А зря
@QWERTYQWERTY-ev2vr
@QWERTYQWERTY-ev2vr 9 ай бұрын
Кто от соера лайк
@kaibrakhmanyelubay2671
@kaibrakhmanyelubay2671 Жыл бұрын
Человек который берет интервью неуважителен
@ВасилийГоловко-д9и
@ВасилийГоловко-д9и 10 ай бұрын
тоже это заметил, но его попустили, когда сказали, что он считает себя умнее postgress.
@sobahuy
@sobahuy 9 ай бұрын
этот человек один из коммитеров в jdbc postgres
@ВасилийГоловко-д9и
@ВасилийГоловко-д9и 9 ай бұрын
@@sobahuy и что это ему дает?
@sergeyz4591
@sergeyz4591 4 ай бұрын
Зато он задавал резонные вопросы. Если бы он их не задавал, то внимательные зрители не заметил тот факт, что докладчик в некоторых моментах обосрался.
@gooldenboy666
@gooldenboy666 24 күн бұрын
какое неуважение от интерьювера, это вообще шок
@svfilipp
@svfilipp 18 күн бұрын
Есть такой момент
@22222222222222223464
@22222222222222223464 Жыл бұрын
на 49:00 разве нахождение дубликатов в btree, которое внесли в 13 версию не сделает эту работу за нас?
@twentxx
@twentxx Жыл бұрын
Спасибо, Андрей! 👍
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
How Strong Is Tape?
00:24
Stokes Twins
Рет қаралды 71 МЛН
Каха и дочка
00:28
К-Media
Рет қаралды 3,3 МЛН
Владимир Ситников - B-tree индексы в базах данных на примере PostgreSQL
45:18
Heisenbug — конференция по тестированию
Рет қаралды 30 М.
Иван Углянский - Thread Wars: проект Loom наносит ответный удар
1:02:31
JPoint, Joker и JUG ru — Java-конференции
Рет қаралды 15 М.
Михаил Жилин - Как PostgreSQL может сделать больно, когда не ожидаешь?
45:50
JPoint, Joker и JUG ru — Java-конференции
Рет қаралды 5 М.
ТРАНЗАКЦИИ И БЛОКИРОВКИ ПРОСТЫМ ЯЗЫКОМ
31:13
Ваня Ио про разработку
Рет қаралды 30 М.
Подготовка к собесу - Оптимизация запросов
25:12
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19