Пример на 8:25 просто топ. В совокупности с бинарным поиском становится супер просто и понятно. Спасибо!
@КирюшаИзКриуши2 жыл бұрын
10/10 за разъяснение этой темы. Все наглядно и понятно. Проходил обучение по SQL на степике : там это максимально непонятно объяснили. Поделюсь ссылкой в обучении
@АлександрЛеонов-и9т Жыл бұрын
👍
@blindbird161910 ай бұрын
Очень доходчиво объясняете. Спасибо!
@shmeserworking7596 Жыл бұрын
Прекрасная подача материала, приятная речь, минималистичное оформление в стиле DOS вообще блеск. Ставлю 5, давай зачётку))
@dingo05 Жыл бұрын
Вы что препод?
@Cp3aloona Жыл бұрын
лучший канал, надеюсь тут все ответы получу, на свои вопросы.
@ListenIT_channel Жыл бұрын
Буду работать над тем, чтобы получил) Спасибо!
@Tolmachovtv11 ай бұрын
Дуже просто, доступно і ефективно пояснив! Дякую, натхнення тобі!
@МаринаАлександрина-щ1ш6 ай бұрын
Спасибо за понятное и краткое объяснение!
@shutka80 Жыл бұрын
Классный у тебя канал. Очень понятно рассказываешь о неочевидных вещах. И круто, что раскрываешь принцип работы под капотом, очень помогает понять логику работы, а следовательно и смысл всего происходящего. Спасибо!
@ListenIT_channel Жыл бұрын
Спасибо тебе, очень приятно! И, конечно, авторам статей спасибо, прежде всего
@ДенисСергеев-ц3э2 жыл бұрын
Спасибо за видео. Для начинающих то что надо! С Новым Годом!!! Удачи и развития канала!!!
@farukhkarimbayev71782 жыл бұрын
Лучший канал, на который подписался в 2022)
@Deletedeletedelete Жыл бұрын
Молодец!
@SuperWolchara Жыл бұрын
спасибо за разъяснения, сейчас как раз занимаемся оптимизацией индексов из за падения производительности
@firston5360 Жыл бұрын
Ну это просто 🔥🔥🔥 на пальцах, как ребёнку из детского сада объясняется😅 так и должно быть
@LeonidYakovlev85 Жыл бұрын
Большое спасибо за выпуск. Интересно, содердательно и информативно 👍
@andrewbelikov8772 Жыл бұрын
Круто объясняешь! Вначале не понял отличия по индексам, почитал на сайтах, снова глянул и как понял ))) Ну или показалось, что понял )) Пока сам не сделаешь, вроде все понятно
@ЕйскийКолхозник-к2е2 жыл бұрын
От души, парни! С новым годом вас))
@ListenIT_channel2 жыл бұрын
С Новым Годом! 🎄
@Николай-й3б2б Жыл бұрын
прикольно. как раз стало интересно что такое SQL.
@АндрейПинчук-х7б9 ай бұрын
Подача огонь, спасибо!
@yijiyman3 ай бұрын
5:43 Не верно утверждение о том, что индексы обновляться не будут. Ядро СУБД будет автоматически обновлять индексы при каждой операции над исходной таблицей, просто процесс обновления будет медленнее из-за записи в файл с индексами
@rustams9125Ай бұрын
Меня тоже смутило это утверждение, подумал как так? Вроде как должны вносится обновления в индексы после внесения данных в таблицу.
@АлександрЛеонов-и9т Жыл бұрын
Прекрасная подача материала, ёмко, доступно, понятно; оформление презентаций очень стильное, на манер граф. оболочки под Dos😎 Лайк, подписка, приметил и другие ролики на канале после этого, в частности, оконные функции:).
@АлександрТкаченко-п1ф Жыл бұрын
Спасибо большое. Было очень интересно ❤
@old-empire2 жыл бұрын
Офигенно! Спасибо!
@nyaetotmogno2 жыл бұрын
Спасибо большое! отличная статья!
@dmitrylerner13782 жыл бұрын
В некластерном индексе маленькая ашипка: сначала должен идти shoes, затем sports-) Но в целом это не умаляет вклад автора в доступное и быстрое развитие интересующихся! Спасибо!
@dariana_sama2 ай бұрын
На 10:12 указываете рекомендации, когда индекс лучше не использовать: 1) в небольших таблица. 2) в таблицах с частыми массовыми update и insert 3) с столбцами, которые часто обрабатываются 4) в таблицах, где много NULL Расскажите подробнее о третьем? что это значит
@eosreign8182 ай бұрын
зачем индексировать те колонки, которые подвержены постоянному изменению?
@dariana_sama2 ай бұрын
@eosreign818 так и скажите, что "обрабатываются" это значит часто перезаписываются. Спасибо
@cor4win2 жыл бұрын
Странно, что тут не упомянуто самое главное - почему же собственно поиск по индексу быстрее, чем поиск по оригинальному полю таблицы. А все потому что индекс имеет структуру, оптимизированную под поиск, например, сбалансированное дерево в случае sql server. Но в целом неплохо, и за дизайн заставок к роликам большой лайк :)
@agelyuri Жыл бұрын
6:50 объяснение производительности индекса
@С.Семенчук4 ай бұрын
@@agelyuri которое абсолютно неверное, булшит.
@monkey_businessss3 ай бұрын
@@С.Семенчук и в чем же?
@С.Семенчук3 ай бұрын
@@monkey_businessssесли задуматься хотя бы на 5 минут как применить к B-Tree метод деления пополам, то сразу выяснится что никак. Потому что B-Tree это совсем не "binary search tree"
@Feldspyt4 ай бұрын
Супер! Спасибо!
@natielsanti407 Жыл бұрын
Спасибо за видео!
@wce-tube Жыл бұрын
Отлично, спасибо!
@lunur10515 ай бұрын
спасибо, очень подробно и понятно!
@4AlexeyR2 ай бұрын
Ага, полезно, отправлю ссылку страждущим :) Полезное уточнение про рабочие базы и хранилища. И да, с индексами надо быть аккуратнее хотя бы потому, что они часто занимают половину базы данных, а переиндексация может занять удивеительно большое вермя.
@КонстантинБелобородов Жыл бұрын
8:30 правильно понимаю, что в product_category_index две последние записи перепутаны местами?
@sonic-fan-play48178 ай бұрын
от души спасибо было полезно интересно
@yodapunishes10 ай бұрын
То ли я прослушал, то ли автор не уточнил: 1. В видео рассмотрен только самый популярный тип BTree 2. BTree применяется не ко всем типам данных, потому и существуют другие (GIN, GIST, etc) 3. У других методов доступа (индексов) алгоритмическая сложность другая 4. Бывают ещё условные, покрывающие, функциональные и другие разновидности индексов
@altair788Ай бұрын
Просто ТОП
@qlmanlp9 ай бұрын
5:44 Как индексы обновляются не будут, если несколько секунд ранее было сказано, что они обновляются после каждого добавления?
@KJII-OKBA Жыл бұрын
Спасибо) Понял как искать нужную инфу в таблицах. До этого просил ребят запрос состряпать)
@ListenIT_channel Жыл бұрын
Круто, что пригодилось) Удачи!
@lonelypaul69 Жыл бұрын
@@ListenIT_channel 9:50 "Методом двоичного поиска находит ..." Как по значению 'electronics' может производится двоичный поиск? Вопрос в том, что непонятно, как находятся все указатели исходя из ключа?
@КристинаК-я1и2 ай бұрын
Я смотрела и пересматривала 40 минутную лекцию преподавателя и так и не поняла что такое этот индекс и как он работает🙈 к 4 минуте вашего этого видео стала понятна суть😅 на нее дальше уже буду собирать нюансы) ну я в шоке😂
@ListenIT_channel2 ай бұрын
Круто, рад, что помогло видео! Тут ещё спасибо автору статьи, конечно. Но нюансы будут - тема глубокая так-то. Удачи! :)
@ГригорийГригоревский-д9г2 жыл бұрын
Очень поверхностно, но для введения в тему за 10 минут хорошо.
@leopard1842 жыл бұрын
Хороший канал.
@tomozi12 жыл бұрын
Отличная статья
@uzurbatya10 ай бұрын
6:40 Зачем использовать бинарный поиск, когда известен первичный ключ?
@АлексейАноним-м8в10 ай бұрын
Я не понял как по не кластеризованному индексу БД ищет двоичным поиском? Там Id должен быть отсортирован для этого?
@jy4apa16510 ай бұрын
По поводу правильного использования индексов не до конца понял. Что подразумевалось под обновлением БД? Новые какие-либо записи или обновление таблиц при миграциях?
@Denisko1232 жыл бұрын
Раньше тыркал индексы везде, но админы начали материться. Таблица весит несколько террабайт и почти на каждом поле индекс )
@Chel1k7 Жыл бұрын
я правильно понимаю исходя из концовки видео, что ту же таблицу Product в бд магазина лучше не индексировать ? Ибо в ней часто происходят обновления (цен например) и добавления товаров. Тогда почему в самом начале пример про Амазон где явно так же часто происходят обновления товаров
@akimovvadim4736 Жыл бұрын
А вы можете озвучить тот большой курс по Flask опубликованный на habr-е?
@youcandoit1559Ай бұрын
Я так понял, что на самом деле, первичный ключ использует кластеризованный индекс. Но никак не наоборот, первичный ключ это уникальный идентификатор, который гарантирует уникальность строк и дейтвительно представлен в таблице кластеризованным индексом. Но сам по себе кластеризованный индекс - это физическое обозначение отсортированных данных)
@artak94397 ай бұрын
5:50 не обязательно, чтоб кластеризованный индекс был на первичном ключе
@РоманРоманов-ю9в Жыл бұрын
огонь )))
@4AlexeyR2 ай бұрын
Эх.. содержание безусловно тоже некий индекс аля категорий, но есть ведь в книгах и прямо Индекс, который "Укзатель" или "Предметный указатель"... ну в хороших книгах :)
@TNamiNa10 ай бұрын
Очень поверхностно
@shkrv63 ай бұрын
двоичный поиск я бы все же назвал бы бинарным))
@arshanskiysergey2791 Жыл бұрын
а зачем нужен кластеризованный индекс, если он полностью копирует колонку с первичным ключом? Почему тогда сразу по таблице и не искать - по этой самой колонке?
@arshanskiysergey2791 Жыл бұрын
наверное для оптимизации: чтобы была возможность быстро выгрузить таблицу индексов в память и найти в ней нужный элемент. А основная таблица может быть во много раз больше, поэтому ее лучше всю без надобности не выгружать.
@Kvit_Domosed Жыл бұрын
Спасибочки
@walcermelodia Жыл бұрын
а индексы ускоряют join'ы? когда например ... join ... where id = .... и т.п.
@Igor245390 Жыл бұрын
Спасибо, подчерпнул для себя нужную информацию. Но остался вопрос. Если при создании таблици создается столбец и у него есть параметр 'UNIQUE'. Создается ли индекс, по аналогиис полем ID? или что происходит?
@fiodar_vasilets7 ай бұрын
Не совсем понятно объяснили разницу в кластеризованном индексе и не. про не кластеризованный индекс в говорите что находится запись столбца для которой создали индекс, далее адрес строки и потом переходим в основную таблицу и делаем выборку трех атрибутов. а в индексированном ни слова про атрибуты в запросе и что получается для их выборки также нужно перейти в основную? Вроде как кластеризованный индекс задает сортировку самой основной таблицы , одна из причин почему он может быть один на таблицу ( один индекс но не обязательно индекс на одну колонку) и при этом они ( индексы ) хранят строки. и при наличии кластеризованно индекса он является указателем для остальных индексов а не указатель на строку? не так ли?
@abbc19998 ай бұрын
Spasibo
@IlyuhaaaSuper Жыл бұрын
В примерах в которых сказано, где лучше не использовать индексы было сказано, что лучше не индексировать столбцы, которые часто обрабатываются. Что понимается под обработкой столбцов?
@НиколайМинаев-н2п Жыл бұрын
скорее всего автор имел ввиду операции UPDATE, т.к. после них обязательно будет реиндекс таблицы, что накладно
@uzurbatya10 ай бұрын
Где там такое сказано? Таймкоды всегда ставь, если хочешь, чтобы тебе ответили
@AlexanderZolnikov2 жыл бұрын
Видео, по определениям в нем, относится к мс скл, ван лав, но стоит об этом уточнить. Другие БД могут работать по другому..
@dimass67 Жыл бұрын
На 5.35 примерно какая-то противоречивость которая осталась без объяснения. При постоянных обновлениях БД (а именно при добавлении данных как я понял в данном примере) индексы обновляться не будут. При этом ранее было сказано что при добавлении данных сначала обновляется исходная таблица а затем ее индексы. Вот через какой промежуток времени между добавлениями, БД будет считаться постоянно обновляемой?. И в конце на 10.10 сказано про какие-то столбцы которые часто обрабатываются. Как это связано с предыдущей информацией? Ведь добавление в БД это инсерт а значит добавляется строка со всеми её столбцами. Следовательно обрабатываются все столбцы и их лучше не индексировать.
@SuperWolchara Жыл бұрын
а как ведет себя кластеризованный индекс если первичный ключ является составным из двух внешних ключей в таблице и как таковой "физической" колонки первичного ключа нет
@arthuryadgarov2375 Жыл бұрын
Двоичный поиск очень похож на метод Ньютона для поиска решений уравнений. Это он?
@imuqqieg92742 жыл бұрын
Если таблица делится пополам, и искомые данные есть и в первой и во второй половине таблицы, как тогда поиск происходит?
@Юрчик-л8у2 жыл бұрын
скорее всего другой поиск тогда работает ,либо возвращается потом во вторую половину
@mihax562 жыл бұрын
не существует в природе таблиц, отсортированных по первичному ключу - на диске это всегда фарш. поиск всегда идет по индексу, т.е. бинарному дереву в общем случае.
@dmitriypolynin72732 жыл бұрын
Поиск идет по отсортированному по условию индексу, файлу индекса, который отдельно от таблицы и много меньше таблицы. После по ссылке прыгаем на запись таблицы. Все это происходит автоматически во время запроса, ничего не нужно мудрить. Если индексы правильно сделаны то работает быстро. На собеседованиях умные девочки мнящие себя программистами задают вопросы типа - чем пользуетесь что бы оптимизировать работу БД, подразумевая что ты должен им живо рассказать о владении какой ни будь модной программой оптимизатором. Я всегда говорю что пользуюсь мозгом.
@gzhegowАй бұрын
Разумный совет, что нужно делать индексы на других таблицах, чем те что часто обновляются. Но есть проблема. Внешние ключи по дефолту индекс создают. Я к чему - совет крутой, логика есть, но из коробки как-то по другому. Впрочем foreign как правило опирается на кластеризованный, так шо.
@---fq2cz2 жыл бұрын
4:05. Не бывает САМОГО оптимального пути😅Он либо оптимальный, либо нет. Мой препод дал бы по шапке за это😂
@reepka4871 Жыл бұрын
Это скорее придирка к словам.. А так то можно ещё вспомнить, что есть локальные оптимумы, а САМЫЙ оптимальный тогда - отнести глобальному оптимуму 🤷♀️
@alexalex54311 ай бұрын
Как ищет бинарно число понятно, а как ищет категорию, где значение это строка?? Как он сравнивает текст по бинарному поиску... (пример некластеризованного индекса)? Кто то может пояснить?
@yodapunishes10 ай бұрын
Любой текст это представление в определенной кодировке, то есть где символу соответствует число
@renatsu_dev Жыл бұрын
Разве индексы не эффективней проверять столбцы на NULL. Мне кажется проиндексированный столбец эффективнее решит задачу SELECT * FROM TABLE WHERE smth IS NOT NULL
@racoobina2 жыл бұрын
А есть подкасты на яндекс-музыке с тем же материалом?
@ListenIT_channel2 жыл бұрын
Всё планирую, но пока руки не дошли сделать подкаст
@MrCursedsin2 жыл бұрын
Всё же не совсем понятно, как проверить была ли колонка проиндексирована или нет
@postoronny2 жыл бұрын
phpMyAdmin :)
@ІванЗагоруйко2 жыл бұрын
Thank you
@Сергей-ы3д8и8 ай бұрын
Хотел посмотреть про SQL инъекции, оказалось, что название не правильно прочитал.
@k3l3vr4442 жыл бұрын
Нихрена не понятно. Если у нас записей 'electronics' больше одной, то таблица индексов будет реализовывать o2m? Тогда, нужно будет получить все внешние ключи из индексной таблицы, и для каждого провести поиск по ключу в основной таблице?
@olzhikggg6915 Жыл бұрын
молодец
@MyxaTcakatuha2 жыл бұрын
в чем разница один индекс на два столбца или два отдельных индекса на эти столбцы? никто нигде этого не объясняет
@jumper_in_maple4814 Жыл бұрын
Ну вот если у тебя это столбцы "категория" и "подкатегория" и ты напишешь запрос на поиск по отдельности (where category = 1 в одном запросе и where subcategory = 2 в другом), то тогда надо бы 2 индекса, будет больше места занимать. А если у тебя связанные поля, когда ты точно знаешь, что нет товаров без категорий и подкатегорий и поиск будешь вести всегда по связным - делаешь индекс на оба поля сразу. Места меньше, индекс один, обновляться будет быстрее. А поиск что так будет быстро работать, что сяк.
@scpfan43022 жыл бұрын
Кластеризованный индекс не использует первичный ключ для структуризации данных! Первичный ключ служит для целостности данных, и то, что он по умолчанию создаёт кластеризованный индекс - стандартное поведение, а не аксиома
@o1ego1eg2 жыл бұрын
когда не использовать индексы: *перечисляются все реальные кейсы :)
@don-kg2hh2 жыл бұрын
Вроде поиск по индексам не всегда считается за logn. Все зависит от структуры данных, в которой они и хранятся. Можно выбрать индексацию с помощью хэш-таблицы, где сложность поиска O(1), но есть нюансы, связанные с хранением.
@andriipetko86842 жыл бұрын
Нюанс заключаеться в том в том что не будут работать с индексом операции , только равенство в запросе. Так как без понимания в "какую сторону" идти бинарный поиск использовать не получиться.
@volodymyranufriev25532 жыл бұрын
При постоянных обновлениях индексы обновляться не будут и станут бесполезны - ну это очень сильное заявление. Если есть БД, где дела именно так обстоят - это какая-то очень ограниченная БД. Но заявлять такое про все базы данных - это неправильно. В целом ролик симпатичный, но вредный для начинающих, и режет глаз спорными заявлениями для опытных
@ulmasjonkilichov4872 жыл бұрын
Очень вводная информация. Нет ничего про b-tree, hash table, gist и тд
@konstantinkrigorov72284 ай бұрын
Тема кластеризованных индексов не раскрыта!
@skad0f7 күн бұрын
столбцы которые часто обрабатываются лучше не индексировать??? шо??? я хочу буста, а тут такое...
@Evgeniy198562 жыл бұрын
Есть ещё фильтрованные индексы.
@MichailFort2 жыл бұрын
Nice)
@KrylovYurii2 жыл бұрын
Очень поверхностное и спорное, нередко просто ошибочное изложение материала. Что-то из серии - попробую понять материал, объясняя его другим. Может автор имел ввиду какую-то конкретную экзотическую СУБД?
@hellohowareyou267 Жыл бұрын
Фак ё инглиьиш
@LuckyCrusky4 ай бұрын
"Индексация - отличный инструмент для оптимизации запросов". Что за бред? При чём здесь оптимизация запросов? Инструмент для оптимизации запросов - профайлер, или что там в вашей любимой СУБД. И пример чудовищный. Текстовые поля, которые, по идее, должны храниться в справочниках. Чему Вы учите людей?
@nikolosmiron14812 жыл бұрын
Слабое видео
@AlexanderZolnikov2 жыл бұрын
Видимо, автор, как и я, в прошлом, ms sql разработчик. В той же сап хане, что all memory, постгре, оракле, нет явного деления на кластерные и не кластерные индексы. Так что видео, в целом, такое себе авно. Там все работает по другому, в отличии от мс скл, особенно с тригерами. В той же сап хане, постгре, оракле, нет явного деления на кластерные и не кластерные индексы. Так что видео, в целом, такое себе, мягко говоря, ждал большего. Отчасти, это и моя боль, пока я не стал работать с другими субд и не ощутил разности.. Автор не знает о чем говорит.
@turkeyrelocation2 жыл бұрын
Поддерживаю. Похоже на пересказ статьи ради пересказа, без какого либо погружения в тему. Тогда уж пусть какая-нибудь тян с сексуальным голосом читает текст
@dmitriypolynin72732 жыл бұрын
знает, но в рамках мускля , для ознакомления достаточно.
@dmitriypolynin72732 жыл бұрын
не мучайтесь, пользуйтесь средой разработки а не websql например dbforge для mysql тогда создание или удаление индексов делается через интерфейс так проще и нагляднее. Хотя и синтаксис нужно знать, но так нагляднее и структура видна и данные и индексы и триггеры и все что нужно.
@Zell-i4c11 ай бұрын
пилляя, я и сам умею читать, лучше б картинки какие-нибудь запихал вместо бесполезного текста. А так, в принципе, понятный материал, спасибо
@konanvarvar35311 ай бұрын
Нихуя не понял
@Ижевск-з4б5 ай бұрын
спасибо братанчик
@RoaringOrange2 жыл бұрын
6:29 Кластеризованный индекс использует первичный ключ? Большей бредятины не слышал...
@Обитатель_эциха_с_гвоздями Жыл бұрын
"При постоянных обновлениях БД индексы обновляться не будут" - адская чушь. Как и весь раздел "когда применять индексы".
@evgeniynoble6064 Жыл бұрын
Я тоже этого не понял, начал гуглить и ничего не нашел. Объяснит кто?
@uzurbatya10 ай бұрын
Когда народ таймкоды начнёт приводить к своим словам?