Тёмный

Все о ИНДЕКСАХ | Ускоряем БД | BTREE HASH GIN 

Павел Сорокин
Подписаться 1,9 тыс.
Просмотров 3,7 тыс.
50% 1

БЕСПЛАТНО материалы по изучению Java и подготовки к собеседованиям от меня: t.me/JavaLearnBot
Курс по Java разработке с 0 до первой работы: clc.to/mentoring-sorokin
Мое закрытое сообщество по Java разработке: t.me/S0R0KlN/76
Telegram канал: t.me/S0R0KlN
Базы данных не могут быстро обрабатывать запросы на поиск, когда данных становится много, а со временем количество данных только растет в каждой системе. Но на помощь с этой проблемой к нам приходят индексы.
Разберем частые типы индексов, которые встречаются на реальных проектах и также затронем их устройство, когда какой использовать и нужно ли вообще. Тема индексов достаточно важная для всех бэкенд разработчиков, именно поэтому ее часто спрашивают на собеседованиях для трудоустройства.
Код проекта из видео: github.com/psorokin02/indexes...
Тайминг
00:00 Начало
00:51 проблема поиска
05:24 BTree индекс
11:52 Пример использования BTree
14:09 Hash индекс
19:16 Пример использования Hash
20:10 GIN Index
22:45 Пример использования GIN
25:22 Индексы не бесплатны
26:32 приступаем к практике
32:42 Индексы в реальных проектах JAVA (пример)
42:51 Экстремальный пример. Сильное замедление.
46:35 Заключение

Опубликовано:

 

27 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 27   
@iamusayev1337
@iamusayev1337 5 дней назад
Красиво делаешь дружище, не останавливайся, продолжай в том же духе!
@sorokinpavel
@sorokinpavel 5 дней назад
Спасибо большое)
@user-ff8cr5cs3q
@user-ff8cr5cs3q 11 дней назад
Топовое видео. Лайк однозначно. Очень хочу увидеть видео по данной теме "Примеры инструментов и команд для профилирования" как продолжения данного видео
@user-qo6wb7gu7n
@user-qo6wb7gu7n 14 дней назад
Спасибо! Очень доступным языком!
@kn1ght113
@kn1ght113 17 дней назад
Привет, спасибо большое за столь доступное объяснение! Еще и с практическими примерами.
@sorokinpavel
@sorokinpavel 17 дней назад
Пожалуйста, рад что было полезно)
@milordplus
@milordplus 12 дней назад
Очень круто! Спасибо! Про GIN индекс мне как раз щас в тему напомнил, по JSON-ам надо бегать.
@sorokinpavel
@sorokinpavel 11 дней назад
Рад, что было полезно) Спасибо за обратную связь!
@ohhmyivan
@ohhmyivan 14 дней назад
Шикарное видео
@crazym8nd
@crazym8nd 16 дней назад
классный видос, еще предлагаю сделать прикольный принт с цветной футболкой как рекламой, если хочется развивать себя как бренд,типа как у кафки
@cwnik
@cwnik 16 дней назад
Отлично, sp-gist, gist, brin было бы неплохо тоже рассмотреть
@q3antonio
@q3antonio 16 дней назад
спасибо!
@m0naco608
@m0naco608 17 дней назад
Круто объяснил
@sorokinpavel
@sorokinpavel 17 дней назад
Пожалуйста, рад что было полезно)
@user-ip4bm4xp2q
@user-ip4bm4xp2q 17 дней назад
Спасибо за видео. Наверное, еще можно сказать, почему используется именно B дерево. На самом деле деревьев очень много разных. Начиная, от двоичных деревьев поиска : сбалансированных и необязательно, Splay деревьев и заканчивая R деревьями, B деревьями и Красно-Черными. Особенность B дерева в том, что оно позволяет снизить промах кэша засчет упорядочивания целого блока данных ведь в узле хранится более 2 элементов. В модели Pointer Machine промахи - дело постоянное, но засчет комбинации с RAM моделью кол-во обращений к памяти (а это syscall , а значит + доп время) снижается и получается выигрыш по скорости. Досмотрел видео. Круто, что ты объясняешь все на примерах как с нативными запросами, так и с Java.
@sorokinpavel
@sorokinpavel 16 дней назад
Спасибо за дополнительные разъяснения) Рад, что видео было полезно, спасибо за обратную связь!
@elliotalderson6609
@elliotalderson6609 13 дней назад
syscall для обращения к памяти?
@user-ip4bm4xp2q
@user-ip4bm4xp2q 13 дней назад
@@elliotalderson6609 потенциальное обращение к памяти всегда syscall, если конечно данные не закешированы в L1, L2, L3. Память в страничной адресации, поэтому если ранее было обращение к непрерывному блоку, то он закешировался и кэш мисса не произойдёт, а если память в разных областях хипа, то конечно будет сискол к kernel space-y от JVM
@elliotalderson6609
@elliotalderson6609 12 дней назад
@@user-ip4bm4xp2q В моем представлении никаких syscall для обращения к любому региону виртуального адресного пространства не нужно. Подгрузка новых страниц вроде же происходит неявно для юзерспейс программы. А какое отношение JVM имеет к разговору?
@neioo231
@neioo231 16 дней назад
Спасибо за видео! Но, убирай камеру вниз справа, а то плохо видно
@dmitry-lz1ny
@dmitry-lz1ny 12 дней назад
Я питонщик, но и мне ролик крайне полезен
@rasZam
@rasZam 14 дней назад
Нужно было практику с самого начала показывать. Имею в виду создание таблицы и так далее, а так норм видео.
@sorokinpavel
@sorokinpavel 14 дней назад
Как нужно и не нужно я сам решу А так спасибо за комментарий
@Roman-ec9iw
@Roman-ec9iw 11 часов назад
Батчами сохраняться не будет у тебя, т.к. генерация id identity
@sorokinpavel
@sorokinpavel 9 часов назад
Спасибо за наблюдение, действительно так и будет в моем примере. Но основной посыл все равно сохраняется, что вставка замедляется
@akalexus...
@akalexus... 17 дней назад
Годный контент для новичка. Но я бы посоветовал тренировать речь и более чётко выражать суть обсуждаемых вещей. А то, вроде сказал по теме, но как-то извилисто и не сразу понятно что именно имел ввиду, хотя то же самое можно было сказать короче, проще и понятнее.
@sorokinpavel
@sorokinpavel 17 дней назад
Спасибо за обратную связь. А можно пример где я мог выразиться проще и понятнее? И как конкретно?
Далее
Хэш-таблицы за 10 минут
13:01
Просмотров 125 тыс.