Дерева. Пошук. Алгоритми. Бази даних

Поділитися
Вставка
  • Опубліковано 22 чер 2024
  • Це відео є підготовчим до більш глибокого занурення в бази даних.
    Спробував відповісти на наступні питання:
    ✅Що таке індекс в базі даних?
    ✅Чим відрізняються різні типи дерев?
    ✅Чому пошук по BST може бути повільним?
    ✅Чому бази даних не використовують бінарний пошук?
    ✅B-дерево проти B+ дерева
    ✅Індекси Postgres, MySQL
    Станьте спонсором цього каналу: / @aboutprogramming
    Допоможіть каналу розвиватися й отримуйте доступ до ексклюзивного контенту.
    Зміст відео:
    0:00 - Вступ
    0:42 - Що таке індекси?
    4:00 - Бінарне дерево
    6:10 - Чому може бути O(n)?
    7:05 - Збалансоване дерево
    7:38 - AVL Tree та RB Tree
    8:51 - B-Tree проти BST
    12:27 - B+ Tree
    14:35 - Анонс контенту
    🏠 Мої соцмережі:
    Жабаскрипт в телеграмі - t.me/jabascript
    Я в Твітер - / viktorturskyi
    Мій Linkedin - / turskyi
    #програмування #українською #programming #javascript #database #mysql #алгоритми

КОМЕНТАРІ • 72

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

    Вже всі підготовчі відео для головного виклав. В наступний раз має бути круте продовження 😎

  • @BorysPratsiuk
    @BorysPratsiuk 5 місяців тому +1

    Окреме дякую за україномовний контент!!!

  • @malds.0629
    @malds.0629 Рік тому +4

    Дуже круте відео! Дякую за україномовниий контент!

  • @nztzn
    @nztzn Рік тому +6

    Дуже крутий україномовний контент. Успіхів у розвитку!

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

    Дякую за відео!

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

    Аж ностальгія пробрала. Згадав як ми вчились балансувати ці дерева після роботи 🤓

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

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

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

    Дуже корисно, нещодавно сам намагався розібратися с BRT, чекаю нові відео 🦾

  • @user-si4sv1sv9b
    @user-si4sv1sv9b 7 місяців тому

    Дякую

  • @Ya_Kor
    @Ya_Kor 6 місяців тому +2

    Мій випадковий вибір, з чого почати знайомство з каналом виявився не випадковим)
    На лекції по структурах даних якраз освітили все, крім B-Tree.
    Дякую за чудове та лаконічне пояснення.
    Пішов досліджувати решту контенту)

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

    Дякую! Дуже корисно і дуже зрозуміле пояснення👌

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

    Крутий контент! Дуже цікаво слухати. Особливо знаючи величезний досвід автора)

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

    Але то красава!!!!!
    Самий крутий український контент який я зараз дивлюсь!!

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

    Толковий відос, дякую :) Коротко та ясно.

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

    Круто, дуже круто.

  • @kyivarcan
    @kyivarcan Рік тому +3

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

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

    Просто топовий канал. Частину знав, частина для мене нове. Дуже круто, дуже

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

    топовий український контент. щиро дякую!

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

    Дякую! Дуже корисно і по справі!

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

    Готовий до наступного відео :)

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

    Дуже круто і головне зрозуміло, підписався)

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

    Круто. Інформативно, зрозуміло і лаконічно 👍

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

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

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

    ❤❤❤❤❤❤❤❤❤❤❤

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

    З мене лайк дивлячись) дуже струтуровано освіжає знання

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

    Дуже кльово - дякую!

  • @user-gywunrl
    @user-gywunrl Рік тому +1

    дуже крутий контент, дякую

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

    Все доволі доступно, супер, дякую.
    Цікавим б також було б відео із додаванням індекса на високо-навантажену (на запис) та велику таблицю в базі данихю

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

    лайк не дивлячись)

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

    Дуже цікаво! Дякую!

  • @user-pt7nz6vc7s
    @user-pt7nz6vc7s Рік тому +1

    Дякую за відео 😊

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

    Дякую за цікавий контент

  • @user-kn4hv3bg6g
    @user-kn4hv3bg6g Рік тому +1

    Дякую! Круто!

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

    Супер ✨

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

    Круто! Дякую!

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

    Дякую за відео

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

    Дякую!

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

    спасибо за то что ты делаешь :)

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

    чекаю на наступне відео)

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

    Гарний контент, видно що хотів розповісти про все і одразу, а по факту стрибав з теми на тему і нічого детально не розповів. Можливо краще було б зробити окремі відео по кожному з дерев, оцінити worst/best complexity, в кінці реалізацію на тій же Node js?

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

      Дякую за відгук! Ідея була зробити одне відео про індекси а базах, але в результаті розбив на декілька 🙂 розбивати ще далі можна було, але тоді не буде порівняльного огляду в одному відео. Відносно реалізації, то це вже не так цікаво, оскільки багато таких відео є й властивості дерев в першу чергу залежать від їх структури, а реалізація того самого b дерева буде складною й великою. Більш цікаво написати код, який показує ефект від використання дерев. В планах є зробити окремі відео під quad tree або binary heap. Там є класні юз-кейси

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

    Прості речі, а вже й забулося (за B+ tree навіть не знав)
    Дякую Автору!
    цікаво, в NoSQL такий самий принцип?

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

      Так. Більшість баз використовувує B+tree для індексів (mongodb, наприклад, теж)

  • @BG-cg2op
    @BG-cg2op Рік тому

    Awesome!

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

    Дякую за відео. Трішки не вірно про AVL дерева: їх використання поширене у документоорієнтованих базах даних

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

      А які саме бази даних використовують AVL дерева для індексування? Бази, що знаю, типу MongoDB, CouchDB, DynamoDB використовують B-Tree для індексів.

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

    Як варіант, було б цікаво ще в деталях про partitioning послухати

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

    База

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

      Так. База, яку варто знати всім, хто працює з базами :) Але й в цьому відео є не зовсім очевидні речі. Наприклад, багато хто не знає, що fanout factor залежить від розміру наших даних (з колонок, які потрапляють в індекс), а не просто константа. Й відповідно page size може на ци впливати (й на максимальний розмір рядка)

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

    Дякую за відео!!!! Цікаво, а як працює like пошук індексованих даних з джоінами на не індексовані

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

      В цілому за визначення того, як обробляти запит й які використовувати індекси відповідає query planner. Він аналізує різні варіанти виконання й обирає той, який набирає найбільший бал. Але при великій кількості джойнів й таблиць може бути таке, що перебрати варіанти занадто дорого, тоді база може навіть просто прорахувати певну кількість рандомних варіантів й обрати вже з них. Також часом query planner часом пробує альтернативні плани, щоб перевірити як вони працюють (у нас були від цього проблеми й доводилося писати хінти в запитах, щоб база використовувала правильні індекси завжди). Ну й звісно в різних базах query planner працює по різному. Що він обере залежить від того скільки даних, від селективності індексу, від кардинальності даних й тд. Тут самому треба закопуватися :) Але можливо має сенс відео про те, як це все перевіряти й як шукати проблемні місця в запитах

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

      @@AboutProgramming дякую за відповідь і круті відео!👍👍👍 треба почати і собі програмувати щось.

  • @victorshnaider7305
    @victorshnaider7305 4 дні тому

    Коли писав червоно-чорне дерево в академії то над видаленям ноди думав цілий день😅

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

    Для тих, хто не в темі, варто уточнювати, що під записом log мається на увазі логарифм із основою 2.

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

      Насправді різниці немає. Так більшість алгоритмів має базу 2, але щоб сконвертувати одну базу в іншу нам треба просто помножити на константу, яка не залежить від n. Тобто це як O(n) й O(10*n) це одне й те саме, оскільки множення "10" не впливає на характер залежності. Це називають hidden constant. Тобто при збільшенні n в 2 рази час виконання збільшиться в 2 рази, а чи то зміна від 10 до 20 чи від 100 до 200 нам без різниці. Аналогічно й з базою логарифма

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

      @@AboutProgramming Але це впливає на розуміння, чому саме логарифм при діленні навпіл.

    • @nanvlad
      @nanvlad 3 місяці тому

      @@itsimplified це коли ми користуємося правилом золотого перетину, а якщо кожен рівень поділити на 3 значення, то буде log 3n, на 4 - log4n і т.д., тому в узагальненому записі вказують просто logn

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

    Привіт. Чи використовуюєте ви планшет для нотатків за допомогою стилуса? Якщо так, то я який мобільний додаток? Дякую.

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

      У мене Galaxy Tab S7 FE й часто просто помалювати його користую. Програма для нотаток там вбудована - Samsung Notes

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

    Комент у підтримку. Цікавий контент!

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

    Але не зрозуміло навіщо вик. дерева з лог.склад. коли є хеш таблиці з конст. складністю?

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

      Хеш таблиці дуже крута структура даних й окрім того дійсно існують хеш-індекси в mysql/postgres, але дані там будуть не відсортовані. Тобто це просто key-value storage. В результаті :
      1. Не можемо робити запити виду "price > 100", а тільки пошук на конкретне значення. Й не можемо зробити скан.
      2. Не можна робити пошук типу "name like 'apple%'"
      3. Не можемо використовувати сортування. Тобто, кожен раз, коли в UI хтось сортує дані по певний колонці, то база не може використовувати індекси.
      Тобто, це перетворює MySQL умовно в Redis

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

      @@AboutProgramming Зрозуміло, дякую.

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

    а, ні. може

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

    шось нагнітаєш важкість про просте. аж 15 хвилин.

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

      Важке ж можеш пропускати

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

    дурна музика

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

      Якщо є кращі варіанти з бібліотекі ютуб, то готовий розглянути

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

    мабуть найзрозуміліше пояснення "дерев", ще й українською

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

    було б круто почути по криптографії огляд (хороші і погані практики) @AboutOrogramming

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

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