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

  Рет қаралды 9,042

Віктор Турський про програмування

Віктор Турський про програмування

Күн бұрын

Запланував серію відео про бази даних. Почнемо з простого🙂:
✅Чому ваші база працює повільно?
✅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 11 ай бұрын
Дуже дякую за Український контент, його дуже не вистарчає
@yuriiholskyi9009
@yuriiholskyi9009 Жыл бұрын
Цікаві теми, чекаю нових. Невеличке побажання коли на відео показується код або консоль, зробити віконце з відеокамери меншим, щоб менше перекривати коду чи тексту. Дякую.
@Tommy7417
@Tommy7417 9 ай бұрын
+
@padwallproduction
@padwallproduction Жыл бұрын
Давай ще. Дуже гарно росповідаєш. Краще більше малих відео про щось конкретне (як зараз) ніж 1 велике про все. Із задоволення дивлюсь. Вже "Грокаємо алгоритми" придбав та читаю, яку мені рекомендували під попереднім відео.
@romkalily
@romkalily Жыл бұрын
А не могли б поділитись посиланням де ви купили книжку? В вас українською мовою?
@romankrut7038
@romankrut7038 7 ай бұрын
Ще трохи і гляну всі ваші відео) коли цікаво і якісно - гріх не дивитись)
@voltstas
@voltstas 11 ай бұрын
Буду вдячний за більше таких відео. Дякую велике!
@ennwy
@ennwy 5 ай бұрын
Підтримую український контент. Чудове відео!
@IIPawkOII
@IIPawkOII 8 ай бұрын
Дякую за круті теми та просто космічну подачу матеріалу! Навіть те що уже знайомо приємно почути простими словами та освіжити у пам'яті. Порекомендував колегам ваш канал, тепер дивимось разом та піднімаємо свій тех-скіл ;)
@jses8560
@jses8560 Жыл бұрын
Дякую за топ контент!
@andriyleliv4608
@andriyleliv4608 Жыл бұрын
Дякую за контент!
@ivanmatvieiev8146
@ivanmatvieiev8146 Жыл бұрын
Супер формат, дякую!
@mixmax1982
@mixmax1982 Жыл бұрын
Супер, давай ще!
@oleksiiborovykov6306
@oleksiiborovykov6306 Жыл бұрын
Дякую, чекаю наступні відео!
@user-ju6hj5up8o
@user-ju6hj5up8o Жыл бұрын
Дуже інформативно! Вогонь
@oleksandrsecondname
@oleksandrsecondname Жыл бұрын
Дякую, дуже цікаво і корисно)
@user-sb4hg4cn6g
@user-sb4hg4cn6g Жыл бұрын
Дякую за цікаве та корисне відео! Продовжуй у тому ж дусі 🙌🏻✨
@user-gn2go1qh7s
@user-gn2go1qh7s 9 ай бұрын
Супер, дякую за відео!
@vasyok92
@vasyok92 Жыл бұрын
Красава🔥
@user-wp3qp3zu6p
@user-wp3qp3zu6p Жыл бұрын
Чекаємо на продовження) 🚀
@andriivovnenko4748
@andriivovnenko4748 Жыл бұрын
Дуже доступно, корисно і актуально. Дякую за роботу.
@RomanApostol
@RomanApostol Жыл бұрын
відео топ!
@artemzabolotnyi3838
@artemzabolotnyi3838 Жыл бұрын
Норм тєма, давай ще контент, класно получається 😎
@RomanTsyupryk
@RomanTsyupryk 9 ай бұрын
Велике дякую вам за це відео.
@romkalily
@romkalily Жыл бұрын
Дуже крутий відос!!!!!!!!! Легенда!!!!
@etniqa3638
@etniqa3638 7 ай бұрын
Дякую, прекрасне відео
@alexperetokin8494
@alexperetokin8494 7 ай бұрын
Чудова інфа! 🙌 дякую!
@artemkerez2152
@artemkerez2152 9 ай бұрын
Алгоритми алгоритми алгоритми) давай давай давай!) класні відео, так тримати!
@yuriyoryshchuk4203
@yuriyoryshchuk4203 5 ай бұрын
Сподобалось відео, бімба!
@alexbohomol6802
@alexbohomol6802 Жыл бұрын
Молодець! Шикарно робиш саме відео і дуже просто пояснюєш! Дивлюся, лайкаю і Дякую! :)
@volodymyrlastovskyi
@volodymyrlastovskyi Жыл бұрын
Дуже цікаво. Чекаю нові відео про детальніший розбір індексів)
@dmytrofiialo4818
@dmytrofiialo4818 Жыл бұрын
Дякую, дуже інформативно. А головне - відразу підтверджено практикою.
@marktven2917
@marktven2917 Жыл бұрын
Дуже файно) цікаво було б ще про рівні ізоляції послухати
@kostiantynivanov6875
@kostiantynivanov6875 5 ай бұрын
топ контент, топ формат, красавчик
@muomieg
@muomieg Жыл бұрын
Чекаю всі наступні теми, давай поглибше)
@4opper1
@4opper1 Жыл бұрын
цікавий відос, корисна інформація в зрозумілому і приктичному форматі 👍
@user-ux8yp3si4d
@user-ux8yp3si4d Жыл бұрын
Цікаво, чекаємо далі. 🦾
@kseniaskopjuk803
@kseniaskopjuk803 3 ай бұрын
Дякую за вашу працю, це дуже корисний контент!
@Roman-oi9el
@Roman-oi9el 6 ай бұрын
Дуже цікаво, а саме головне, мотивує.
@thankfulperson3309
@thankfulperson3309 Жыл бұрын
Приклади у гітхабі це просто супер!
@KuzyoYaroslav
@KuzyoYaroslav 8 ай бұрын
Дуже цікаво, хочеться вподобати декілька разів. Дуже сподобалась ваша ідея про базовий курс що ви мали у weblab - надіюсь вистачить натхнення хоч частково його викласти в такому доступному форматі на ютюб.
@user-yd2zy6iz6i
@user-yd2zy6iz6i Жыл бұрын
Дякую за вiдео. В базах ще дуже цiкава тема це партiшенiнг, різні типи під різні юзкейси. Також цікаво почути про відношення до реалізаціі бізнес логики на рівні бази, чи це повне табу чи можно щось юзати і де зупинитись.
@serhiibaranovskyi9131
@serhiibaranovskyi9131 Жыл бұрын
Дуже крутий формат теорія плюс практика. Цікаво було би почути про join(и)
@user-gs2vp8yc7k
@user-gs2vp8yc7k 7 ай бұрын
Слухав твої відео, довго не міг зрозуміти - шо за база така - мускуль
@petrokopyl9581
@petrokopyl9581 Жыл бұрын
Чекаю відео про реалізацію full text search індексів. Дуже цікаво!!! Я навіть ввімкну дзвіночок, перший раз в своєму житті 😅
@AdminAdmin-sl2qf
@AdminAdmin-sl2qf 2 ай бұрын
❤❤❤❤❤❤❤❤❤❤❤❤
@SS-bo9yt
@SS-bo9yt 11 ай бұрын
Знову ж все класно) Було б цікаво в майбутньму зробити більш вузькі напрямки (плейлисти) по самих популярних DMS, але можливо це вже перебір бо треба розкопувати документації багато. Але заради такої шутки в укрїнському ютюбі я готовий допомогти)
@AlexSmith-oe6pr
@AlexSmith-oe6pr 9 ай бұрын
Дякую за контент, був би радий побачити продовження цієї теми біль глибше: композитні індекси, при яких умовах бази починають послідовний перебір навіть якщо є індекси, індекси + фільтри, що робити з HR+HW, як можна зменшувати ціну перебудови індексів. Якщо ще й з практичними прикладами + якісь ситуації з власного досвіду - ідеально!)
@romkalily
@romkalily Жыл бұрын
Відео дуже цікаве:) Бо базах даних цікаво ше мабуть послухати шось цікаве про міграції, бо вони також часто зустрічаються А загалом дуже круто, дуже круто розкаєш і слухати все дуже дуже цікаво!!! Тому чесно для мене будь яка інформація дуже корисна навіть по при то шо багато знайомого але чесно дуже дуже круто!!!
@AboutProgramming
@AboutProgramming Жыл бұрын
Про міграції цікава тема. Дякую за ідею)
@romkalily
@romkalily Жыл бұрын
@@AboutProgramming Там було б ше цікаво порівняти міграції в монго і в sql:)
@victormasny2336
@victormasny2336 Жыл бұрын
Дякую за працю. Реально корисно. Якщо буде можливість, було б добре почути про дб івенти
@AboutProgramming
@AboutProgramming Жыл бұрын
Дякую. Відносно івентів, то ніколи й не користував їх на практиці, якщо я правильно зрозумів про які івенти йде мова
@vovabortnyak721
@vovabortnyak721 Жыл бұрын
Супер, дуже потрібні знання! Як варіант для наступних відео в тему алгоритмів - whiteboard interviews. Як розібратись із потрібними алгоритмами, навчитись розв'язувати задачі (не тільки для співбесід), підходи, ресурси.
@vovabortnyak721
@vovabortnyak721 Жыл бұрын
А про бази даних взагалі топчик!
@alexandrkramar2765
@alexandrkramar2765 Жыл бұрын
Чудове відео для тих хто тільки починає працювати з БД, бо це основи. Але для цієї аудіторії анонс на наступні відео по темі - це як "сьогодні ми навчилися кататися на велосипеді, а наступного разу навчу вас керувати літаком". :) (це я про дерева, і кластерні індекси)
@AboutProgramming
@AboutProgramming Жыл бұрын
Ну, це ж буде декілька відео 😄
@kostyagordienko1392
@kostyagordienko1392 7 ай бұрын
Доброго дня, Віктор! Щиро дякую за дуже корисний контент! Підкажіть будь ласка, чи вірно я розумію що коли ми сетимо РК, бд автоматично створює індекс по РК полю? І з приводу інсерт - чи потрібно власноруч перестворювати індекс після додавання чи бд це робить сама автоматично?
@AboutProgramming
@AboutProgramming 7 ай бұрын
Дякую! 🙂 База оновлює індекси автоматично. Але у мене були колись ситуації з битими додатковими індексами й не всі дані були доступні й це вимагало перебудови індексів. Також перебудова може бути потрібна при змінв параметрів таблиці типу collation.
@v.ilchenko
@v.ilchenko Жыл бұрын
Згадав, стосовно баз даних - було б дуже круто почути про транзакції. Час від часу зіштовхуємось з проблемами, коли в двох паралельних транзакціях взаємодіємо з одним і тим же рядком і падаємо в deadlock. Також детально про рівні ізоляцій, вони означають і як працюють. Заздалегідь дякую
@AboutProgramming
@AboutProgramming Жыл бұрын
Так, якось доберусь до цієї теми. Там багато цікавих аспектів. Відносно локів, то чим вище рівень ізоляції, тим більше локів всередені для того, щоб транзакції виглядали як такі, що не впливають одна на одну
@v.ilchenko
@v.ilchenko Жыл бұрын
@@AboutProgramming Є таке. В нас ще була практика, коли через serializable транзакцію намагались пофіксити те, що можна було пофіксити, наприклад, через unique constraint. Виходило не дуже :)
@artfireshow
@artfireshow Жыл бұрын
Цікаво було б розібрати архітектуру бази даних для інтернет магазину, або невеликої соціальної мережі. Різні звязки між таблицями і яку базу даних краще використовувати в яких випадках краще використовувати? Дякую за цікавий український контент! 🇺🇦👍
@AboutProgramming
@AboutProgramming Жыл бұрын
Дякую за ідею! Так, в цілому можна було б розібрати пару кейсів
@rostyslavsmetanin3415
@rostyslavsmetanin3415 8 ай бұрын
Дуже корисне відео, дякую! Але є питання: як індекси допомагають "шукати товари, які закінчуються на щось" (11:24)? Це якийсь тип індексів, які сортують текст з кінця?
@AboutProgramming
@AboutProgramming 8 ай бұрын
Дякую! Відносно індексу, то це скоріше про те, що концептуально це можливо й відповідно на практиці теж можна змусити працювати такий кейс. Треба перебудувати індекс, щоб був для INDEX(REVERSE(column)) й відповідно робити LIKE REVERSE ('%ending'). Також можно використовувати generated column з реверснутими даними
@rostyslavsmetanin3415
@rostyslavsmetanin3415 8 ай бұрын
@@AboutProgramming дякую! generated column використовували, але про те, щоб в індексі використовувати функції, не думав
@user-fq4pc7fm2z
@user-fq4pc7fm2z Жыл бұрын
Продолжительность видео самое норм!
@gradient8516
@gradient8516 7 ай бұрын
+
@donutWiggum
@donutWiggum Жыл бұрын
По перше дякую, по друге - лишилося питання. Якщо ми шукаємо по 2-х колонках (у вас нехай це нейм та дискрипшин), то що у такому випадку робити краще: по 1 індексу на кожну колонку, чи 1 індекс на 2 колонки? (Не знаю, за цю БД, але в МС СКЛ так можна)
@AboutProgramming
@AboutProgramming Жыл бұрын
В цілому це залежить від селективності індексів. Але зазвичай роблять індекс по декількох колонках. У випадку нейм й дескріпшен, то тут цікавий кейс оскільки зазвичай шукають всередині дескріпшену й тут звичайний індекс не допоможе
@okopyl
@okopyl Жыл бұрын
Дуже дякую, цікава тема. В мене база ніколи не тупила... Але великих в мене ніколи не було. Чому база ляже? (3:27)
@AboutProgramming
@AboutProgramming Жыл бұрын
Дякую за відгук :) Відносно бази, то якщо у нас на виборку даних уходить 3.3с, а запит приходить кожні 3с, то ми ще не встигли обробити один запит, а нам приходить новий. Й якщо ми уявимо, що ми чекаємо завершення виконання попереднього запиту, то другий запит завершиться через (0.3+3.3=3.6) й через годину нашим запитам треба буде чекати в черзі вже 6 хв й черга буде зростати й зростити й зростати. Звісно, що це дуже абстракта модель (на практиці є багато нюансів), але модель валідна. Є дуже класна доповідь на тему масштабування - kzfaq.info/get/bejne/g5uiYKyH3baRh30.html
@pavloburyanov5842
@pavloburyanov5842 Жыл бұрын
@@AboutProgramming також дякую за корисну лінку. це є дуже добре коли після доповідей починають виникати питання - тобто зявляється інтерес
@MeryKael
@MeryKael Жыл бұрын
гарне відео, але я не зрозумів як вирішити проблему з запитами типу "%some name%"?
@AboutProgramming
@AboutProgramming Жыл бұрын
Через пару тижнів буде детальне відео про інвертовані індекси. В деталях покажу, як вони працюють на практиці й поміряємо перформанс :)
@2009Spread
@2009Spread 8 ай бұрын
збережені процедури, транзакції в бд
@Shurupich
@Shurupich 8 ай бұрын
цей канал - це скарб україномовного dev-ютубу. шкодую і дивуюсь, що півроку не попадав мені в рекомендаціях.
@pavloburyanov5842
@pavloburyanov5842 Жыл бұрын
на vscode є екстеншн щоб ранити квері "не відходячи від каси". але це вже діло смаку
@user-kp4qz3qg9x
@user-kp4qz3qg9x Жыл бұрын
туторіал по базам даних рідною мовою чого ще треба хотіти в цьому житті?)
@KEA1902
@KEA1902 7 ай бұрын
Поперше, дякую за цікаві теми українською. Але хотів би побажати заздалегідь бути на відео більше підготовленим в сенсі чіткого плану презентації теми і менше імпровізації. Або вирізати на монтажі зайве
@AboutProgramming
@AboutProgramming 7 ай бұрын
Дякую за відгук. Все впирається в наявність часу, тому був обраний такий формат
@daloot3910
@daloot3910 Жыл бұрын
Шо за лінукс у батька Гугла? )))))))
@AboutProgramming
@AboutProgramming Жыл бұрын
Kubuntu 🙂
@user-io6tm9ns6g
@user-io6tm9ns6g 2 ай бұрын
А можна 2 лайка !? :)
@AboutProgramming
@AboutProgramming 2 ай бұрын
Тоді треба ще під іншим відео на каналі))
@user-io6tm9ns6g
@user-io6tm9ns6g 2 ай бұрын
Обов'язково!
@HOSTRASOKYRA
@HOSTRASOKYRA Жыл бұрын
Дякую. Чекаю на наступні відео.
Дерева. Пошук. Алгоритми. Бази даних
15:56
Віктор Турський про програмування
Рет қаралды 10 М.
Як працюють індекси в базах на прикладі. MySQL vs Postgres. UUID vs Auto Increment.
37:42
Віктор Турський про програмування
Рет қаралды 14 М.
Kitten has a slime in her diaper?! 🙀 #cat #kitten #cute
00:28
FOUND MONEY 😱 #shorts
00:31
dednahype
Рет қаралды 3,5 МЛН
ОДИН ДОМА #shorts
00:34
Паша Осадчий
Рет қаралды 6 МЛН
3 важливі книги про проектування програмного забезпечення
4:04
Віктор Турський про програмування
Рет қаралды 5 М.
Як працює повнотекстовий пошук? Розбираємо на практиці інвертовані індекси
48:14
3 речі, які роблять програміста кращим
20:12
Віктор Турський про програмування
Рет қаралды 17 М.
Як працює Інтернет? Основні питання про DNS
22:58
Віктор Турський про програмування
Рет қаралды 45 М.
Чому алгоритми важливі? Розберемо на прикладі
23:44
Віктор Турський про програмування
Рет қаралды 14 М.
3 речі, що псують програміста
10:55
Віктор Турський про програмування
Рет қаралды 13 М.
Хешування, кодування, шифрування. В чому різниця?
8:40
Віктор Турський про програмування
Рет қаралды 8 М.
Learn Database Normalization - 1NF, 2NF, 3NF, 4NF, 5NF
28:34
Decomplexify
Рет қаралды 1,7 МЛН
Kitten has a slime in her diaper?! 🙀 #cat #kitten #cute
00:28