Навіщо потрібні індекси в базі даних? Розберемо на прикладі

Поділитися
Вставка
  • Опубліковано 27 чер 2024
  • Запланував серію відео про бази даних. Почнемо з простого🙂:
    ✅Чому ваші база працює повільно?
    ✅10 млн рядків в базі, чи це багато?
    ✅Навіщо потрібні індекси в базах даних?
    ✅Як працюють індекси в базах даних?
    Приклади коду з відео - github.com/koorchik/jabascrip...
    Станьте спонсором цього каналу: / @aboutprogramming
    Допоможіть каналу розвиватися й отримуйте доступ до ексклюзивного контенту.
    Зміст відео:
    0:00 - Вступ
    1:29 - Запити без індексів
    3:30 - O(n) vs O(log n)
    6:14 - Запити з індексом
    8:15 - Тестуємо like
    9:49 - Чому не спрацював індекс?
    15:55 - Чи прискорюють нас індекси?
    17:30 - Про наступні відео
    🏠 Мої соцмережі:
    Жабаскрипт в телеграмі - t.me/jabascript
    Я в Твітер - / viktorturskyi
    Мій Linkedin - / turskyi
    #programming #javascript #database #mysql #sql #програмування #українською

КОМЕНТАРІ • 91

  • @tesleman1434
    @tesleman1434 Рік тому +13

    Дуже дякую за Український контент, його дуже не вистарчає

  • @yuriiholskyi9009
    @yuriiholskyi9009 Рік тому +24

    Цікаві теми, чекаю нових. Невеличке побажання коли на відео показується код або консоль, зробити віконце з відеокамери меншим, щоб менше перекривати коду чи тексту. Дякую.

  • @Philip_Just
    @Philip_Just Рік тому +11

    Давай ще. Дуже гарно росповідаєш. Краще більше малих відео про щось конкретне (як зараз) ніж 1 велике про все. Із задоволення дивлюсь. Вже "Грокаємо алгоритми" придбав та читаю, яку мені рекомендували під попереднім відео.

    • @romkalily
      @romkalily Рік тому +1

      А не могли б поділитись посиланням де ви купили книжку? В вас українською мовою?

  • @voltstas
    @voltstas Рік тому +5

    Буду вдячний за більше таких відео. Дякую велике!

  • @romankrut7038
    @romankrut7038 9 місяців тому

    Ще трохи і гляну всі ваші відео) коли цікаво і якісно - гріх не дивитись)

  • @Roman-oi9el
    @Roman-oi9el 8 місяців тому

    Дуже цікаво, а саме головне, мотивує.

  • @IIPawkOII
    @IIPawkOII 9 місяців тому +2

    Дякую за круті теми та просто космічну подачу матеріалу! Навіть те що уже знайомо приємно почути простими словами та освіжити у пам'яті. Порекомендував колегам ваш канал, тепер дивимось разом та піднімаємо свій тех-скіл ;)

  • @artemkerez2152
    @artemkerez2152 10 місяців тому

    Алгоритми алгоритми алгоритми) давай давай давай!) класні відео, так тримати!

  • @kseniaskopjuk803
    @kseniaskopjuk803 4 місяці тому

    Дякую за вашу працю, це дуже корисний контент!

  • @user-gs2vp8yc7k
    @user-gs2vp8yc7k 9 місяців тому

    Слухав твої відео, довго не міг зрозуміти - шо за база така - мускуль

  • @serhiibaranovskyi9131
    @serhiibaranovskyi9131 Рік тому +2

    Дуже крутий формат теорія плюс практика. Цікаво було би почути про join(и)

  • @marktven2917
    @marktven2917 Рік тому +2

    Дуже файно) цікаво було б ще про рівні ізоляції послухати

  • @alexandrkramar2765
    @alexandrkramar2765 Рік тому +2

    Чудове відео для тих хто тільки починає працювати з БД, бо це основи. Але для цієї аудіторії анонс на наступні відео по темі - це як "сьогодні ми навчилися кататися на велосипеді, а наступного разу навчу вас керувати літаком". :) (це я про дерева, і кластерні індекси)

    • @AboutProgramming
      @AboutProgramming  Рік тому

      Ну, це ж буде декілька відео 😄

  • @alexperetokin8494
    @alexperetokin8494 9 місяців тому

    Чудова інфа! 🙌 дякую!

  • @RomanTsyupryk
    @RomanTsyupryk 10 місяців тому

    Велике дякую вам за це відео.

  • @yuriyoryshchuk4203
    @yuriyoryshchuk4203 6 місяців тому

    Сподобалось відео, бімба!

  • @vasyok92
    @vasyok92 Рік тому

    Красава🔥

  • @AlexSmith-oe6pr
    @AlexSmith-oe6pr 10 місяців тому

    Дякую за контент, був би радий побачити продовження цієї теми біль глибше: композитні індекси, при яких умовах бази починають послідовний перебір навіть якщо є індекси, індекси + фільтри, що робити з HR+HW, як можна зменшувати ціну перебудови індексів. Якщо ще й з практичними прикладами + якісь ситуації з власного досвіду - ідеально!)

  • @ennwy
    @ennwy 7 місяців тому

    Підтримую український контент. Чудове відео!

  • @etniqa3638
    @etniqa3638 8 місяців тому

    Дякую, прекрасне відео

  • @user-gn2go1qh7s
    @user-gn2go1qh7s 10 місяців тому

    Супер, дякую за відео!

  • @andriivovnenko4748
    @andriivovnenko4748 Рік тому +1

    Дуже доступно, корисно і актуально. Дякую за роботу.

  • @mixmax1982
    @mixmax1982 Рік тому

    Супер, давай ще!

  • @kostiantynivanov6875
    @kostiantynivanov6875 7 місяців тому

    топ контент, топ формат, красавчик

  • @andriyleliv4608
    @andriyleliv4608 Рік тому

    Дякую за контент!

  • @SS-bo9yt
    @SS-bo9yt Рік тому +1

    Знову ж все класно) Було б цікаво в майбутньму зробити більш вузькі напрямки (плейлисти) по самих популярних DMS, але можливо це вже перебір бо треба розкопувати документації багато. Але заради такої шутки в укрїнському ютюбі я готовий допомогти)

  • @jses8560
    @jses8560 Рік тому

    Дякую за топ контент!

  • @ivanmatvieiev8146
    @ivanmatvieiev8146 Рік тому

    Супер формат, дякую!

  • @user-sb4hg4cn6g
    @user-sb4hg4cn6g Рік тому +2

    Дякую за цікаве та корисне відео!
    Продовжуй у тому ж дусі 🙌🏻✨

  • @RomanApostol
    @RomanApostol Рік тому

    відео топ!

  • @HOSTRASOKYRA
    @HOSTRASOKYRA Рік тому

    Дякую. Чекаю на наступні відео.

  • @thankfulperson3309
    @thankfulperson3309 Рік тому

    Приклади у гітхабі це просто супер!

  • @user-ju6hj5up8o
    @user-ju6hj5up8o Рік тому

    Дуже інформативно! Вогонь

  • @oleksandrsecondname
    @oleksandrsecondname Рік тому

    Дякую, дуже цікаво і корисно)

  • @user-wp3qp3zu6p
    @user-wp3qp3zu6p Рік тому

    Чекаємо на продовження) 🚀

  • @petrokopyl9581
    @petrokopyl9581 Рік тому

    Чекаю відео про реалізацію full text search індексів. Дуже цікаво!!! Я навіть ввімкну дзвіночок, перший раз в своєму житті 😅

  • @romkalily
    @romkalily Рік тому

    Дуже крутий відос!!!!!!!!!
    Легенда!!!!

  • @4opper1
    @4opper1 Рік тому

    цікавий відос, корисна інформація в зрозумілому і приктичному форматі 👍

  • @dmytrofiialo4818
    @dmytrofiialo4818 Рік тому

    Дякую, дуже інформативно. А головне - відразу підтверджено практикою.

  • @artemzabolotnyi3838
    @artemzabolotnyi3838 Рік тому

    Норм тєма, давай ще контент, класно получається 😎

  • @AdminAdmin-sl2qf
    @AdminAdmin-sl2qf 4 місяці тому +1

    ❤❤❤❤❤❤❤❤❤❤❤❤

  • @volodymyrlastovskyi
    @volodymyrlastovskyi Рік тому

    Дуже цікаво. Чекаю нові відео про детальніший розбір індексів)

  • @KuzyoYaroslav
    @KuzyoYaroslav 9 місяців тому

    Дуже цікаво, хочеться вподобати декілька разів.
    Дуже сподобалась ваша ідея про базовий курс що ви мали у weblab - надіюсь вистачить натхнення хоч частково його викласти в такому доступному форматі на ютюб.

  • @muomieg
    @muomieg Рік тому

    Чекаю всі наступні теми, давай поглибше)

  • @alexbohomol6802
    @alexbohomol6802 Рік тому

    Молодець! Шикарно робиш саме відео і дуже просто пояснюєш! Дивлюся, лайкаю і Дякую! :)

  • @user-ux8yp3si4d
    @user-ux8yp3si4d Рік тому

    Цікаво, чекаємо далі. 🦾

  • @user-yd2zy6iz6i
    @user-yd2zy6iz6i Рік тому

    Дякую за вiдео. В базах ще дуже цiкава тема це партiшенiнг, різні типи під різні юзкейси. Також цікаво почути про відношення до реалізаціі бізнес логики на рівні бази, чи це повне табу чи можно щось юзати і де зупинитись.

  • @v.ilchenko
    @v.ilchenko Рік тому +1

    Згадав, стосовно баз даних - було б дуже круто почути про транзакції. Час від часу зіштовхуємось з проблемами, коли в двох паралельних транзакціях взаємодіємо з одним і тим же рядком і падаємо в deadlock. Також детально про рівні ізоляцій, вони означають і як працюють. Заздалегідь дякую

    • @AboutProgramming
      @AboutProgramming  Рік тому

      Так, якось доберусь до цієї теми. Там багато цікавих аспектів. Відносно локів, то чим вище рівень ізоляції, тим більше локів всередені для того, щоб транзакції виглядали як такі, що не впливають одна на одну

    • @v.ilchenko
      @v.ilchenko Рік тому

      @@AboutProgramming Є таке. В нас ще була практика, коли через serializable транзакцію намагались пофіксити те, що можна було пофіксити, наприклад, через unique constraint. Виходило не дуже :)

  • @bvs-16
    @bvs-16 Рік тому

    Супер, дуже потрібні знання!
    Як варіант для наступних відео в тему алгоритмів - whiteboard interviews. Як розібратись із потрібними алгоритмами, навчитись розв'язувати задачі (не тільки для співбесід), підходи, ресурси.

    • @bvs-16
      @bvs-16 Рік тому

      А про бази даних взагалі топчик!

  • @romkalily
    @romkalily Рік тому

    Відео дуже цікаве:)
    Бо базах даних цікаво ше мабуть послухати шось цікаве про міграції, бо вони також часто зустрічаються
    А загалом дуже круто, дуже круто розкаєш і слухати все дуже дуже цікаво!!!
    Тому чесно для мене будь яка інформація дуже корисна навіть по при то шо багато знайомого але чесно дуже дуже круто!!!

    • @AboutProgramming
      @AboutProgramming  Рік тому +1

      Про міграції цікава тема. Дякую за ідею)

    • @romkalily
      @romkalily Рік тому

      @@AboutProgramming
      Там було б ше цікаво порівняти міграції в монго і в sql:)

  • @victormasny2336
    @victormasny2336 Рік тому

    Дякую за працю. Реально корисно. Якщо буде можливість, було б добре почути про дб івенти

    • @AboutProgramming
      @AboutProgramming  Рік тому

      Дякую. Відносно івентів, то ніколи й не користував їх на практиці, якщо я правильно зрозумів про які івенти йде мова

  • @artfireshow
    @artfireshow Рік тому +1

    Цікаво було б розібрати архітектуру бази даних для інтернет магазину, або невеликої соціальної мережі. Різні звязки між таблицями і яку базу даних краще використовувати в яких випадках краще використовувати?
    Дякую за цікавий український контент! 🇺🇦👍

    • @AboutProgramming
      @AboutProgramming  Рік тому +1

      Дякую за ідею! Так, в цілому можна було б розібрати пару кейсів

  • @kostyagordienko1392
    @kostyagordienko1392 9 місяців тому

    Доброго дня, Віктор!
    Щиро дякую за дуже корисний контент!
    Підкажіть будь ласка, чи вірно я розумію що коли ми сетимо РК, бд автоматично створює індекс по РК полю?
    І з приводу інсерт - чи потрібно власноруч перестворювати індекс після додавання чи бд це робить сама автоматично?

    • @AboutProgramming
      @AboutProgramming  9 місяців тому

      Дякую! 🙂 База оновлює індекси автоматично. Але у мене були колись ситуації з битими додатковими індексами й не всі дані були доступні й це вимагало перебудови індексів. Також перебудова може бути потрібна при змінв параметрів таблиці типу collation.

  • @user-fq4pc7fm2z
    @user-fq4pc7fm2z Рік тому

    Продолжительность видео самое норм!

  • @rostyslavsmetanin3415
    @rostyslavsmetanin3415 9 місяців тому +1

    Дуже корисне відео, дякую! Але є питання: як індекси допомагають "шукати товари, які закінчуються на щось" (11:24)? Це якийсь тип індексів, які сортують текст з кінця?

    • @AboutProgramming
      @AboutProgramming  9 місяців тому +2

      Дякую! Відносно індексу, то це скоріше про те, що концептуально це можливо й відповідно на практиці теж можна змусити працювати такий кейс. Треба перебудувати індекс, щоб був для INDEX(REVERSE(column)) й відповідно робити LIKE REVERSE ('%ending'). Також можно використовувати generated column з реверснутими даними

    • @rostyslavsmetanin3415
      @rostyslavsmetanin3415 9 місяців тому

      @@AboutProgramming дякую! generated column використовували, але про те, щоб в індексі використовувати функції, не думав

  • @donutWiggum
    @donutWiggum Рік тому

    По перше дякую, по друге - лишилося питання.
    Якщо ми шукаємо по 2-х колонках (у вас нехай це нейм та дискрипшин), то що у такому випадку робити краще: по 1 індексу на кожну колонку, чи 1 індекс на 2 колонки? (Не знаю, за цю БД, але в МС СКЛ так можна)

    • @AboutProgramming
      @AboutProgramming  Рік тому +1

      В цілому це залежить від селективності індексів. Але зазвичай роблять індекс по декількох колонках. У випадку нейм й дескріпшен, то тут цікавий кейс оскільки зазвичай шукають всередині дескріпшену й тут звичайний індекс не допоможе

  • @2009Spread
    @2009Spread 10 місяців тому

    збережені процедури, транзакції в бд

  • @okopyl
    @okopyl Рік тому

    Дуже дякую, цікава тема. В мене база ніколи не тупила... Але великих в мене ніколи не було.
    Чому база ляже? (3:27)

    • @AboutProgramming
      @AboutProgramming  Рік тому

      Дякую за відгук :)
      Відносно бази, то якщо у нас на виборку даних уходить 3.3с, а запит приходить кожні 3с, то ми ще не встигли обробити один запит, а нам приходить новий. Й якщо ми уявимо, що ми чекаємо завершення виконання попереднього запиту, то другий запит завершиться через (0.3+3.3=3.6) й через годину нашим запитам треба буде чекати в черзі вже 6 хв й черга буде зростати й зростити й зростати. Звісно, що це дуже абстракта модель (на практиці є багато нюансів), але модель валідна.
      Є дуже класна доповідь на тему масштабування - ua-cam.com/video/M5r-IVxP-WI/v-deo.html

    • @pavloburyanov5842
      @pavloburyanov5842 Рік тому

      @@AboutProgramming також дякую за корисну лінку. це є дуже добре коли після доповідей починають виникати питання - тобто зявляється інтерес

  • @gradient8516
    @gradient8516 9 місяців тому

    +

  • @pavloburyanov5842
    @pavloburyanov5842 Рік тому

    на vscode є екстеншн щоб ранити квері "не відходячи від каси". але це вже діло смаку

  • @user-kp4qz3qg9x
    @user-kp4qz3qg9x Рік тому

    туторіал по базам даних рідною мовою
    чого ще треба хотіти в цьому житті?)

  • @MeryKael
    @MeryKael Рік тому

    гарне відео, але я не зрозумів як вирішити проблему з запитами типу "%some name%"?

    • @AboutProgramming
      @AboutProgramming  Рік тому +1

      Через пару тижнів буде детальне відео про інвертовані індекси. В деталях покажу, як вони працюють на практиці й поміряємо перформанс :)

  • @Shurupich
    @Shurupich 9 місяців тому +1

    цей канал - це скарб україномовного dev-ютубу.
    шкодую і дивуюсь, що півроку не попадав мені в рекомендаціях.

  • @daloot3910
    @daloot3910 Рік тому

    Шо за лінукс у батька Гугла? )))))))

  • @KEA1902
    @KEA1902 9 місяців тому

    Поперше, дякую за цікаві теми українською.
    Але хотів би побажати заздалегідь бути на відео більше підготовленим в сенсі чіткого плану презентації теми і менше імпровізації. Або вирізати на монтажі зайве

    • @AboutProgramming
      @AboutProgramming  9 місяців тому

      Дякую за відгук. Все впирається в наявність часу, тому був обраний такий формат

  • @user-io6tm9ns6g
    @user-io6tm9ns6g 4 місяці тому

    А можна 2 лайка !? :)

    • @AboutProgramming
      @AboutProgramming  4 місяці тому

      Тоді треба ще під іншим відео на каналі))

    • @user-io6tm9ns6g
      @user-io6tm9ns6g 4 місяці тому

      Обов'язково!

  • @oleksiiborovykov6306
    @oleksiiborovykov6306 Рік тому

    Дякую, чекаю наступні відео!