ИНДЕКСЫ В БАЗАХ ДАННЫХ. СОБЕС В OZON.

Поделиться
HTML-код
  • Опубликовано: 4 фев 2025

Комментарии • 168

  • @ivangolang
    @ivangolang  6 месяцев назад

    Записи реальных собесов и полезную инфу для подготовки можно найти на бусти boosty.to/vanyaio
    Тренажер по Go для подготовки к собесу: stepik.org/a/206788
    Задачи на горутины и каналы Go для собесов: stepik.org/a/207625

  • @Nearfulz
    @Nearfulz 11 месяцев назад +136

    Чет орнул на моменте, когда автор решил найти Лену Головач

    • @kp3292
      @kp3292 5 месяцев назад +8

      ГЫ-ГЫ-ГЫ Лена Головач поняли?
      ГОЛОВАЧЛЕНА ХПХПХПХПХ
      ОРАЛИ ВСЕЙ ГАЛЕРОЙ

    • @Nearfulz
      @Nearfulz 5 месяцев назад

      @@kp3292 Тут просто факт неожиданности был смешной. Обычно типо обучающие айти видосы достаточно серьезные, а тут такой простой и примитивный кек закрался. Просто неожидано, а не то что шутка про Лену Головач очень смешная.

    • @tatar3352
      @tatar3352 14 дней назад

      еще вопрос откуда взялись2 мужика в бд с таким именем

  • @alexmalex7689
    @alexmalex7689 11 месяцев назад +48

    Уже хз сколько времени все обещал себе поиграться с базой и разобраться в индексах, а тут Ванька все по полочкам разложил. Спасибо, родной!

  • @alexzav1327
    @alexzav1327 11 месяцев назад +9

    Классное видео! Только начал разбираться с индексами и наткнулся на это объяснение. Очень наглядно, твои эксперименты с индексами помогли мне понять материал из статей с теорией. Спасибо! )

  • @lellel5521
    @lellel5521 10 месяцев назад +1

    Спасибо, хорошее видео, но думаю, нужно больше примеров и обьяснений.
    Например, когда ты говоришь, что у селери большая разница в кол-ве строк с 995000 и 999900, то можно было бы сделать select с этим условием и показать, думаю станет намного наглядней
    В остальном видео супер, спасибо

  • @iceskatingds
    @iceskatingds 6 месяцев назад +38

    Нужно для чистоты эксперимента чистить буфер-кеш, у тебя и без индекса второй прогон запроса моментально отработает.
    Что такое bi-index на пальцах:
    Есть 100 миллионов записей, для наглядности пускай это будет одна колонка, в ней цифры лежат от 1 до 100 млн, ищем мы например запись со значением 45млн, если нет индекса, субд переберёт все строки(все 100 млн) таблицы в поисках нужного значения/значений, если есть индекс, в этом случае би индекс - это считай регулировщик: ты к к нему подходишь, он тя спрашивает - че те надо, ты гришь 45млн найти хочу, он те грит, иди вон туды, там значения от 1 до 50 млн лежат, идешь туды, там еще один регулировщик и он тя отправит в диапазон от 25 до 50млн и тд до финиша. Это очень утрировано, но имхо понятно и наглядно.

    • @dmiitriyevgrafoov3151
      @dmiitriyevgrafoov3151 3 месяца назад

      во во ! самы правильный коментарий - прогретали БД , хватает ли кэша буферов. Но это уже тема для учеников 2го класса

    • @THE-WELLWiSHER
      @THE-WELLWiSHER 3 месяца назад +1

      Это что бинарный поиск ?

    • @ЕвгенийБелых-г3з
      @ЕвгенийБелых-г3з 2 месяца назад

      ​@@THE-WELLWiSHERда

    • @bocik2854
      @bocik2854 2 месяца назад

      @@THE-WELLWiSHER нет.

  • @in_ads_we_trust
    @in_ads_we_trust 10 месяцев назад

    Подписка за юмор и жизу. Круто, что такие видео попадают в реко.

  • @bgrfnhfc5861
    @bgrfnhfc5861 16 дней назад

    Пока что лучшее видео про индексы что я видел. Пошёл дальше изучать контент на канале, хоть и пишу на Java, а не Го)

  • @megaShvil
    @megaShvil 10 месяцев назад

    Спасибо большое. Очень вовремя попалось выше видео

  • @ИльяПономарев-е9ю
    @ИльяПономарев-е9ю 11 месяцев назад +2

    информация полезная, спасибо! ​
    Не было ничего сказано про сбор статистики, мне кажется после создания индекса лучше это делать принудительно ( ANALYZE employee;). В некоторых случаях планировщик не будет использовать индекс без актуальной статистики. Процесс сбора может и в фоне позже пройти

  • @yakovzh
    @yakovzh 11 месяцев назад +4

    Я когда индексы объясняю, всегда привожу в аналогию бумажный индекс (который алфавитный указатель у нас называется). Ну, что по сути индекс - это просто те же данные, отсортированные по-другому, и способ быстро прыгать у нужной части. Можно эксельку взять, сортировать по-разному, и показывать. Например селективность - сортируешь по sex, и видишь что у тебя тупо по 100500 девочек и мальчиков, и дальше - перебор. Или что можно отсортировать по salary или по created date - и там будет понятно что в одном случае потом сортировать придется, а во втором - фильтровать по salary, и совместить нельзя. Опять же можно фильтры включить и сказать что можно частичные индексы сделать, скажем включить сразу людей с salary>150 и отсортировать по created_date - и будет сразу результат, но только для этого частного случая.

  • @scruper
    @scruper 11 месяцев назад +14

    Получил оффер на синьора в озоне. Вообще по БД вопросов не было...За видео спасибо, всегда интересно

    • @alexzav1327
      @alexzav1327 11 месяцев назад

      Можно немного подробнее о том, что было )

    • @neo1647
      @neo1647 11 месяцев назад

      по чём нынче сеньёр-помидор?

    • @EvgeniiSuvorov
      @EvgeniiSuvorov 11 месяцев назад

      а что было? рассказал б в двух словах

    • @floydmayweather6934
      @floydmayweather6934 10 месяцев назад

      А это на GO? Или Java

    • @Пумпурумм
      @Пумпурумм 2 месяца назад

      @@neo1647во мне получил

  • @БорисМеньшаков-н5ю
    @БорисМеньшаков-н5ю 11 месяцев назад

    Хороший контент, попался в рекомендациях. Определенно подписка. Так держать!

  • @Hairy89pro
    @Hairy89pro 11 месяцев назад

    Однажды подробный разбор блокировок в бд стал для меня "базой", той самой вэХаЭс с главным фильмом, что ставили на полку, а не таскали из проката. Лену головач даже записывали в список присутствующих студенты первых курсов, на первых занятиях, когда преподаватель не вёл перекличку группы, а направлял лист по партам - звучала эта учащаяся в тишине аудитории необычно, серьёзно и глупо одновременно) Автору просьба - не пропадать в вечность, подобные видео или любого кастома очень важны и полезны, это настоящий опыт, а не писанина по примерам в гайде итп

  • @ТимофейМахотин
    @ТимофейМахотин 11 месяцев назад +2

    Мне нравится Головач Лена! Я думаю она хороший человек!

  • @EvgenySeliverstov
    @EvgenySeliverstov 2 месяца назад

    Круто! Лайк и подписка конечно же. Насчет составных индексов- есть тема в оптимизации запросов, где сказано, что лучше делать отдельный по каждому столбцу. Составной индекс работает не всегда..

    • @ВадимСтебаков
      @ВадимСтебаков 2 месяца назад

      Лучше - это когда не гадаешь, а смотришь, что показал план

  • @user-buser_eto_ja
    @user-buser_eto_ja 4 месяца назад

    Спасибо тебе Ваня! Очень полезно , наглядно, а главное нужно!!!

  • @alexanderdmitriev8525
    @alexanderdmitriev8525 16 дней назад

    2 момента:
    1. Без explain не ясно работает ли сам индекс. Скорее всего он работает, только на сортировке самое большее время отъедается
    2. Какие настройки у бд? Память, веса поиска и тп

  • @НиколайБабкин-г5с
    @НиколайБабкин-г5с 8 месяцев назад

    Хороший видос, для начинающих самое оно - доступно и с цифрами. Спасибо

  • @alexfilus
    @alexfilus 11 месяцев назад +4

    В последнем примере скорее подошёл бы индекс
    create index on employee (age) where salary > 995000;

  • @АлександрВасильев-в1е
    @АлександрВасильев-в1е 10 месяцев назад

    Хорошее видео. Лайк в поддержку!

  • @vryaboshapko
    @vryaboshapko 11 месяцев назад

    Из моего опыта классный повод использовать частичный индекс - это поиск по пользователям с редкой ролью (в моём случае это была dev роль, но бывают ещё всякие админы и суперпользователи).

  • @cupon8869
    @cupon8869 7 месяцев назад

    спасибо за хорошее видео с примерами, рекомендую к просмотру новичкам в индексировании

  • @ДенисНовіков-с7и
    @ДенисНовіков-с7и 8 месяцев назад

    Класное видео. Автор все очень хорошо объясняет.

  • @sovrinfo
    @sovrinfo 11 месяцев назад +1

    Спасибо, очень классное видео!

  • @leomysky
    @leomysky 6 месяцев назад

    Отличное видео, много базы, спасибо

  • @ТуралИскендерли
    @ТуралИскендерли 6 месяцев назад

    Крутое практичное видео!!👍

  • @kirby808b
    @kirby808b 7 месяцев назад

    Спасибо, очень доступно и понятно

  • @dimalozhkin4477
    @dimalozhkin4477 2 дня назад

    Мы не расмотрели вопрос, если мы создадим два индекса

  • @__Programming_Path
    @__Programming_Path 12 дней назад

    Вроде коротко, нов сё понятно!!

  • @АртемАстапов-ц3м
    @АртемАстапов-ц3м 11 месяцев назад +1

    С набранной статой лучшим вариантом был бы sex, age, created_at
    Или age, created_at (для уменьшения размера)
    Ультра быстрым был бы еще
    Sex, age, created_at include salary
    Дело в том, что вы сортируете очень много данных, и для этого всего надо очень много оперативной памяти.
    Последний индекс по по сортировке позволяет бд ничего не сортировать в памяти, тупо можно идти подряд по листьям индекса.
    Также на практике запросы будут с лимитом скорее всего, и тут бесплатная сортировка вообще топ.
    Вам надо в своих выводах исходить из внутренней структуры индекса, а не из эфимерных правил, тогда и самому станет понятнее.

    • @ivangolang
      @ivangolang  11 месяцев назад +1

      Так показываю же бенчмарком, что age,sex,created_at (понятно, что порядок sex и age конкретно здесь не важен) нерабочий вариант. Объяснение почему так в видео есть.
      Про include не знал, спасибо, почитаю.

    • @ivangolang
      @ivangolang  11 месяцев назад +1

      Про include почитал - спасибо за наводку. Здесь он, конечно, не поможет. По той же самой причине, почему не помогает индекс без инклюда.

    • @АртемАстапов-ц3м
      @АртемАстапов-ц3м 11 месяцев назад

      @@ivangolangсоздай статистику, сделай измерения. Потом добавь limit 10, сделай измерения.
      А ещё ты не меняешь пиковое потребление оперативной памяти. А ещё у тебя данные могу не влезть в буфер сортировки.

    • @АртемАстапов-ц3м
      @АртемАстапов-ц3м 11 месяцев назад

      *не измеряешь потребление памяти

    • @АртемАстапов-ц3м
      @АртемАстапов-ц3м 11 месяцев назад

      @@ivangolang include тут поможет тем, что не надо будет в таблицу обращаться для отбора, а можно будет прямо из индекса брать.. Зависит ещё от того, используешь ли * или нет.

  • @Garbatblu_Collector
    @Garbatblu_Collector 27 дней назад

    29:21 короче фишка в том что создание у тебя произошло в один момент +/- и тоже как будто не сильно работает created_at... типа не размазались данные во времени.
    на моей практике обычно начинается с временного диапазона и типа это помогает т.к. ты делаешь условно по дням/неделям/месяцам/годам в зависимости о бизнес задачи. Да, в текущем запросе не нужно ограничивать по времени, а только сортировка, но как бестпрактис часто по таймстемпу с created_at / updated_at следует начинать запрос.

  • @dy0mber847
    @dy0mber847 11 месяцев назад +37

    ❗ВИДЕО СОДЕРЖИТ ОЧЕНЬ МНОГО СЕКСА❗

    • @gettingITjob
      @gettingITjob 11 месяцев назад +1

      * сексов 🥸

    • @witphg
      @witphg 11 месяцев назад +1

      Найти богатую мил** )

  • @dy0mber847
    @dy0mber847 11 месяцев назад +1

    Хороший материал, красавчик

  • @ИльясЖунусов-э6ч
    @ИльясЖунусов-э6ч 9 месяцев назад

    чел видосы огонь, юмор тоже огонь!

  • @ДаядУкар
    @ДаядУкар 6 месяцев назад +1

    Как проверить сколько памяти потребляет индекс ? Как в эпизоде финального сравнения.

  • @trsm3028
    @trsm3028 4 месяца назад

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

    • @Юрчик-л8у
      @Юрчик-л8у 3 месяца назад

      есть готовые бд для этого

  • @Anonymous00754
    @Anonymous00754 8 месяцев назад

    вобще от души в душу !

  • @aleksandrpetrov3938
    @aleksandrpetrov3938 12 дней назад

    учитывая низкую селективность sex и salary в итоге, может тогда просто индекс на age отработает так же хорошо? Без всяких составных индексов

  • @skad0f
    @skad0f Месяц назад

    у меня графана парсит бд с алармами по datetime, будет ли буст, если проиндексировать эту колонку?

  • @КоньЛюдоед-ф6ф
    @КоньЛюдоед-ф6ф 11 месяцев назад

    Еще не смотрел но прям пааахнет годнотой же. гляну обязательно)

  • @eine_Eule
    @eine_Eule 5 месяцев назад

    Что такое селективность? Это оценка количества дисковых операций ввода-вывода? Или что-то другое?

  • @alexfilus
    @alexfilus 11 месяцев назад +1

    А ещё раз уж у нас в запросах часто встречается низкоселективная колонка sex можно по всем её возможным значениям построить частичные индексы.

    • @hakooplayplay3212
      @hakooplayplay3212 11 месяцев назад

      Сможешь поподробнее пояснить идею?

    • @ahtohpolsky3975
      @ahtohpolsky3975 11 месяцев назад

      @@hakooplayplay3212 как в примере сделали частичный индекс на salary > 999500, так же сделать sex='female' и sex='male', но сомневаюсь что это даст профит, при селективности 50% время на обращение к индексу может не окупить пользу, которую он принесет

    • @vryaboshapko
      @vryaboshapko 11 месяцев назад

      А что это даст? Поиск по более селективному индексу почти всегда будет предпочтительнее, только зря место под индекс потратим.

  • @gpankov
    @gpankov 17 дней назад

    На какую зарплату в озоне можно рассчитывать?

  • @arbiatagaev2380
    @arbiatagaev2380 3 месяца назад

    Достойная работа))

  • @boulevardgaidena.k.a3555
    @boulevardgaidena.k.a3555 11 месяцев назад

    Суперматериал!!! Ток вот не понятно в одном месте, Было сказано про влияние индекса на скорость вставки данных в таблицу уже после создания индекса, и типа на нее будем обращать внимание, но в финале не было такого критерия, был критерий время создания индекса, или время создания индекса соответствует времени вставки в БД. Или это совсем другая единица и ее просто не рассмотрели

    • @ivangolang
      @ivangolang  11 месяцев назад +1

      Ее хорошо бы рассмотреть отдельно, не хотел просто этим грузить. В первом приближении время создания индекса вроде коррелирует со вставкой/апдейтом.

    • @boulevardgaidena.k.a3555
      @boulevardgaidena.k.a3555 11 месяцев назад

      @@ivangolang понял, спасибо, материал пушка, долго про индексы серфил разную инфу, в основном везде все базовое общее. Да и в целом другие видосы заинтересовали. Хотя если в масштабах канала смотреть, у тебя больше Golang, а я на питонячем стеке, но все равно полезно

    • @ahtohpolsky3975
      @ahtohpolsky3975 11 месяцев назад

      Это время прямопрапорционально увеличению объма базы при добавлении индекса. Точные значения могут различаться на порядки в зависимости от сложноотслеживаемых параметров

  • @muhammadumarsotvoldiev8768
    @muhammadumarsotvoldiev8768 7 месяцев назад

    Спасибо огромное

  • @ahtohpolsky3975
    @ahtohpolsky3975 11 месяцев назад

    Возможно в видео следовало добавить пункт про primary key и то, как он взаимодействует с порядком данных в памяти
    P.S. я же правильно понимаю, что идея делать primary key по GUID чаще всего проигрывает идее primary key по identity (возможно в postgers по другому называется, растущий в одну сторону индекс 1, 2, 3... 700000) по той причине, что в памяти не нужно будет пересортировывать огромную таблицу при добавлении нового значения?

  • @temnikoff
    @temnikoff 11 месяцев назад

    Постре не кэширует план запроса после первого выполнения? Возможно, что частичное ускорение поиска Лены связано еще и с этим, а лишь потом добавляется эффект от индекса.

    • @ivangolang
      @ivangolang  11 месяцев назад

      так он же с индексом новый план строит и юзает, как ему закэшированнный старый план помогает в этом?

    • @xionnnn719
      @xionnnn719 11 месяцев назад

      ​@@ivangolang энивей я бы в любом случае указывал постгре не использовать кеш, но даже это не помогло бы в полной степени. результаты одного и того же запроса будут разными даже если постгря не будет юзать кеш

  • @vvops2540
    @vvops2540 11 месяцев назад +1

    Капец как подробно)) можно море контента сделать только на тему постгри

  • @НикВла27
    @НикВла27 10 месяцев назад

    Очень полезная инфа, спасибо. хоть я и не разраб, а сис анал, но мне тоже полезно знать

  • @ВладимирКоваленко-ъ6о
    @ВладимирКоваленко-ъ6о 3 месяца назад

    А что по покрывающим индексам?

  • @someone-special-xc
    @someone-special-xc 11 месяцев назад

    любая Лена Головач наверное всегда произносит сналала свое имя, а потом уже фамилию 🤣🤣🤣 👍

  • @ThePirateHistory
    @ThePirateHistory 11 месяцев назад

    Почему не так, допустим есть неравенство допустим > 100, почему не проиндексировать это как 3 единицы условно символов, это уже ведь ускорить проверку, и тоже самое по имени, зачем мне искать по всем ленам, и так далее, если можно было бы создать отдельную как структуру или папку бдшку, где сортировка будет идти по первой букве, внутри этой таблицы первой буквы, уже будут другие таблицы отсортированные по количеству символв в той строке, такая структура разве не улучшит саму бдшку, само собой это идёт какой-то глобальный индекс который уже делает раза в2-4 раза быстре отклик, и потом уже такую сортировку если это не равенство в случае с интом или стрингой с кол-во внутри символом, это ведь тоже ускорит запрос, такое можно делать, посмотрел только до 9:34
    Структура которую я имею ввиду:
    1) Юзер
    1.2)А
    1.3)Б
    1.2.1) 1 символ
    и так далее. Есть такие бдшки?

    • @ahtohpolsky3975
      @ahtohpolsky3975 11 месяцев назад

      база индексирует в любом случае уникальные значения, допустим ты хочешь сделать индекс по первым 3 символам "Але", смысла в этом в итоге мало, так как если сделать полностью индекс по имени, выйдет 2 уникальных значения "Алена" и "Алексей", в итоге профита мало

    • @ThePirateHistory
      @ThePirateHistory 11 месяцев назад

      @@ahtohpolsky3975 я описал о индексировании, первое по первой букве, а потом по кол-во символов, можно сделать наоборот

  • @crazy_fedor
    @crazy_fedor 11 месяцев назад

    Головачлену это гениально 😂

  • @vryaboshapko
    @vryaboshapko 11 месяцев назад

    15:46 Ну очень уж задумчивое «эээммм» 😅

  • @demo_ni_ma
    @demo_ni_ma 11 месяцев назад

    После того, как услышал про Елену, сразу понял что эти 30 минут я проведу с гениальным человеком.
    Спасибо за урок, с меня продвижение репостиком)

  • @uglycarl7661
    @uglycarl7661 11 месяцев назад

    Данные методики создания индексов актуальны и для других СУБД или только для постгреса?,

    • @vryaboshapko
      @vryaboshapko 11 месяцев назад +1

      Самый надёжный ответ лежит в документации к той СУБД, которая вас интересует, потому что в каждой СУБД свой планировщик запросов, и у него может быть своё мнение о том, что такое оптимальный запрос. Но вообще да, общие принципы вытекают из особенностей той структуры данных, которая используется для хранения индексов. В видео говорится только о B-дереве, деревья - это «основная» структура для индексов, её по умолчанию используют PostgresSQL, MySQL, SQLite и, наверняка, многие другие. В некоторых СУБД есть ещё хэш-мапа, и вот для неё большая часть информации из видео не актуальна.

  • @alexfilus
    @alexfilus 11 месяцев назад

    В примере когда при наличии индекса по age, salary и запросе age = 18 постгрес выбрал seq scan не пробовали CREATE STATISTICS сделать?

    • @ivangolang
      @ivangolang  11 месяцев назад

      О, нет, я вообще про такую хитрую фичу не знал. Спасибо. Не уверен правда, что помогло бы - колонки с собой никак не связаны (без этого, если правильно понял, CREATE STATISTICS не имеет смысла), генерилось все простым рандомом.

    • @alexfilus
      @alexfilus 11 месяцев назад

      @@ivangolang Насчёт этого не уверен, но иногда даёт очень приятные результаты.

  • @dreamer_vi905
    @dreamer_vi905 7 месяцев назад +1

    26:45 я так над камеди клабом не смеялся))

  • @SlavaCh
    @SlavaCh 11 месяцев назад

    А если на собесе, вместо конкретного решения, начать в размышление, типо «ну это зависит от того какие данные, надо взять и посмотреть, надо изучить как добавление индекса заафектит другие запросы и тд и тп», а конкретного решения так и не предложить…такое прокатит, как думаешь?

    • @ivangolang
      @ivangolang  11 месяцев назад

      Что такое конкретное решение в задаче, у которой его нет?
      Именно на задаче из видео в рамках собеса я бы навалил варианты по правилу составления сложных индексов, а дальше бы в сжатой форме объяснил, что надо понимать про данные и другие запросы в системе. Если захотят углубиться - углубился бы.

    • @ivani3237
      @ivani3237 11 месяцев назад

      ну дальше сразу вопрос "так на какие параметры смотреть. и как зависит?" - если ничего внятного - то ответ не засчитывается

    • @ivangolang
      @ivangolang  11 месяцев назад

      @@ivani3237 я не понимаю к чему коммент. Ну да, собесы работают так, что когда ты не можешь ответить внятно на вопрос - ответ не засчитывается.

    • @ivani3237
      @ivani3237 11 месяцев назад

      @@ivangolang ну вот автор вопроса почему-то об этом не знал

  • @andreyko_o9014
    @andreyko_o9014 11 месяцев назад

    это дают написать такой запрос sql или составить индексы? просто не понял в чем сложность запроса

    • @ivangolang
      @ivangolang  11 месяцев назад

      составить индекс на данный запрос

  • @irustv7674
    @irustv7674 11 месяцев назад +3

    Само поле sex нужно было делать не текстовым, а числовым типа 0 и 1 + таблица справочник с ключем на эти значения и тогда индекс будет работать лучше по этому полю (память жрать меньше как минимум). Так же ещё можно было упомянуть про частоту запросов пользователей и их тип (select, update и т.д.) к полям таблицы и порядок создания индексов из этого расчета.
    Сам я давно уже не работаю с базами данных (1,5 года), так что сори, если написал как-то не так.

    • @ivangolang
      @ivangolang  11 месяцев назад

      Спасибо за содержательный коммент:) Про пол согласен. Про частоту тоже, отчасти это было и по ходу дела, и в финальном выводе, что надо понимать какие еще есть запросы/какие у нас на них требования, про частоту явно забыл упомянуть.

    • @ivangolang
      @ivangolang  11 месяцев назад

      Вообще про пол такой момент, что оригинальная задача с собеса была именно так дана. Но лишнем сумничать не было бы в любом случае по этому поводу

    • @alexfilus
      @alexfilus 11 месяцев назад +2

      Лучше тогда enum. Для пользователя выглядит как строка, а под капотом целое число 4 байта.

    • @viacheslav90
      @viacheslav90 11 месяцев назад +4

      В современных реалиях лучше оставить это поле текстовым чтобы можно было записать всё что нужно🤣

    • @nv188-x5i
      @nv188-x5i 11 месяцев назад +1

      @@viacheslav90 как раз с учетом современных реалий его лучше числовым делать чтобы по этому полю быстрее поиск шел. Можно хоть миллиард гендеров записать, главное описание приделать, как чел выше заметил.

  • @zicksu2142
    @zicksu2142 10 месяцев назад +1

    И все же не понятно почему count(id) from employee where sex = 'frmale' отработал на 4 секунды дольше после создания индекса по полю sex???
    explain показывает seq scan в обоих случаях что без индекса, что с индексом. Но без индекса быстрее. ПОЧЕМУ?
    ЗЫ: я бы понял если в случае с индексом в explain был бы индекс (а не seq scan), тогда можно было предположить что увеличение по времени произошло из-за неселективной колонки sex. Но даже если бы индекс затормозил поиск из-за неселективности, подсчет бы все равно выполнился по индексу (т.к. он корректный - т.е. указан на верную колонку и не составной) и в explain были бы следы использования индекса. Можно было бы понять если бы индекс был составной с неправильным порядком колонок - тогда поиск по индексу не дал бы результатов и выполнился seq scan по итогу и как следствие увеличение времени из-за неэффективного индекса. НО ПОЧЕМУ ПРАВИЛЬНЫЙ НЕ СОСТАВНОЙ ИНДЕКС (пусть и на неселективной колонке) ТОРМОЗИТ ПРОЦЕСС, А ПОСЛЕ EXPLAIN выдает seq scan ВООБЩЕ НЕ ПОНЯТНО. По итогу метод поиска один и тот же, но индекс дал +4 сек.

    • @ЕвгенийКунгуров-т6с
      @ЕвгенийКунгуров-т6с 2 месяца назад

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

  • @timur2887
    @timur2887 5 месяцев назад

    "постгрес на праймари ки всегда создает сам индекс"... Вообще он ключом становится только благодаря уникальному индексу и никак иначе

  • @sadstill
    @sadstill 9 месяцев назад

    Привет, а как ты загенерил 70 млн записей, что за инструмент?

    • @ИванИванов-я5э9к
      @ИванИванов-я5э9к 5 месяцев назад

      Полагаю, что инструментом был цикл for в любом языке программирования)

  • @karmraks
    @karmraks 11 месяцев назад

    как ты проверил алокацию памяти при добавлении индексов

    • @ivangolang
      @ivangolang  11 месяцев назад

      В докере смотрел на размер вольюма

  • @ИльясЖунусов-э6ч
    @ИльясЖунусов-э6ч 9 месяцев назад

    где можно скачать тестовый бд?

  • @TheDavBag
    @TheDavBag 11 месяцев назад

    все узрели лену, ни все узрели "к своим"

  • @benkubbb785
    @benkubbb785 6 месяцев назад

    Gender бы сделал, просто люди не поймут меня если я включу на громкий

  • @purgalimited
    @purgalimited 11 месяцев назад

    Спасибо

  • @РауфШиринов
    @РауфШиринов 9 месяцев назад

    После 15:58 подписался)))

  • @АлександрЛобов-ю6ж
    @АлександрЛобов-ю6ж 8 месяцев назад

    лайк за то, что люблю находить Голова Члену сразу

  • @LisaFilipenkova
    @LisaFilipenkova 3 месяца назад

    сторителлинг топ

  • @OlgaLozovska
    @OlgaLozovska 5 месяцев назад

    Не знаю, как в постгре, но оракл некоторое время хранит результаты выполнения запросов в кеше, и когда ты второй раз запустишь тот же самый запрос, то и без всяких индексов выполнится за гораздо более короткое время, чем первый раз. Ну, и индекс - это не штука и не функционал, а объект базы данных.

  • @ИванИванов-я5э9к
    @ИванИванов-я5э9к 5 месяцев назад +1

    Ищем всех в возрасте 18ти лет с ЗП 0, чтоб предложить присоединиться к своим и выполнять достойную работу) Ахахаххахахахах))) Нормально рофлишь)

  • @olgababoshina-rj4us
    @olgababoshina-rj4us 11 месяцев назад +2

    Не знаю какие цыгане тебя принесли в нашу семью, но они явно с какими-то умными корнями))) моему мозгу сложно воспринимать все, что после слов собеседование ))))

  • @TLK3693
    @TLK3693 11 месяцев назад

    дякую

    • @sadstill
      @sadstill 9 месяцев назад +1

      Не за что, хохлик❤

  • @ForeverNils
    @ForeverNils 9 месяцев назад

    Лена Головач - да автор тот ещё троль )

  • @demitelix
    @demitelix 4 месяца назад

    За Головаааааач!!!😀

  • @the_ower514
    @the_ower514 9 месяцев назад

    Смотря на тенденции этого мира скоро sex будет не низко селективным)))

  • @psylo1841
    @psylo1841 11 месяцев назад

    +rep за мемы в видосе

  • @МихаилИльинский-ж6о
    @МихаилИльинский-ж6о 11 месяцев назад

    Лена Головач, Головач Лена...

  • @jordenskraften8273
    @jordenskraften8273 11 месяцев назад

    То что нужно

  • @BorgerKat
    @BorgerKat 8 месяцев назад

    Чиселка?

  • @LeXX_009
    @LeXX_009 11 месяцев назад

    Я вообще херачу индексы на все уолонки которые используются в поиске, и похер

  • @devracoon
    @devracoon 7 месяцев назад +1

    Привет
    Спасибо за видос
    На бусти наверное тоже подпишусь
    Ток вот вопрос, че делать то в ситуации?
    1027 ms это убийственно много, за такое можно по ебалу получить((
    Че там с BRIN индексом по sex, age, created_at?
    Че там по кластеризации таблицы
    Че там по MATERIALIZED VIEW?
    Декартово произведение индексов Bitmap Index Scan и BitmapAnd?
    OZON удовлетворит ответ про индекс который ускоряет все с 12 сек до 1 сек?

  • @MrSmallChe
    @MrSmallChe 11 месяцев назад

    автор вкурсе что такое "Лена Головач"? это типа такой юмор?

    • @ivangolang
      @ivangolang  11 месяцев назад +1

      В курсе, это имя и фамилия.

  • @megagluik100
    @megagluik100 7 месяцев назад

    охуенное видео, автор молодец

  • @ekzotech
    @ekzotech 11 месяцев назад

    То чувство, когда у тебя есть знакомая по имени "Лена Головач", и ты знаешь, почему у неё всегда имя впереди фамилии 😂

  • @Chudics
    @Chudics 2 месяца назад

    дотер в айти

  • @MikhailHubarau-mr2fu
    @MikhailHubarau-mr2fu 11 месяцев назад

    у Лены Головач Нужно сначала фамилию искать а потом имя такие правила ничего не пделаешь

  • @tyazhely_4elov3k
    @tyazhely_4elov3k 8 месяцев назад

    немного шуток+кринжа в видео про программирование, кайф

  • @myddl2643
    @myddl2643 11 месяцев назад

    Что тут такого, Гена Цидармян?

  • @nbalinux
    @nbalinux 2 месяца назад

    из трех лен головач двое мужчины)

  • @TheIamFly
    @TheIamFly 11 месяцев назад

    очень селективное видео

  • @lefrutit228
    @lefrutit228 7 месяцев назад

    умоляю купи нормальный микрофон 🥺

  • @РауфШиринов
    @РауфШиринов 9 месяцев назад

    Лайк коммент

  • @ДенисШ-и1х
    @ДенисШ-и1х 11 месяцев назад

    age = 50 это уже совсем не milf (

    • @ivangolang
      @ivangolang  11 месяцев назад

      Ну че ты, не согласился если бы она богатой была?

    • @psylo1841
      @psylo1841 11 месяцев назад +1

      больше 50 - это уже GILF

  • @gewalt5886
    @gewalt5886 4 месяца назад

    слава сво