Навіщо потрібні індекси в базі даних? Розберемо на прикладі
Вставка
- Опубліковано 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 #програмування #українською
Дуже дякую за Український контент, його дуже не вистарчає
Цікаві теми, чекаю нових. Невеличке побажання коли на відео показується код або консоль, зробити віконце з відеокамери меншим, щоб менше перекривати коду чи тексту. Дякую.
+
Давай ще. Дуже гарно росповідаєш. Краще більше малих відео про щось конкретне (як зараз) ніж 1 велике про все. Із задоволення дивлюсь. Вже "Грокаємо алгоритми" придбав та читаю, яку мені рекомендували під попереднім відео.
А не могли б поділитись посиланням де ви купили книжку? В вас українською мовою?
Буду вдячний за більше таких відео. Дякую велике!
Ще трохи і гляну всі ваші відео) коли цікаво і якісно - гріх не дивитись)
Дуже цікаво, а саме головне, мотивує.
Дякую за круті теми та просто космічну подачу матеріалу! Навіть те що уже знайомо приємно почути простими словами та освіжити у пам'яті. Порекомендував колегам ваш канал, тепер дивимось разом та піднімаємо свій тех-скіл ;)
Алгоритми алгоритми алгоритми) давай давай давай!) класні відео, так тримати!
Дякую за вашу працю, це дуже корисний контент!
Слухав твої відео, довго не міг зрозуміти - шо за база така - мускуль
Дуже крутий формат теорія плюс практика. Цікаво було би почути про join(и)
Дуже файно) цікаво було б ще про рівні ізоляції послухати
Чудове відео для тих хто тільки починає працювати з БД, бо це основи. Але для цієї аудіторії анонс на наступні відео по темі - це як "сьогодні ми навчилися кататися на велосипеді, а наступного разу навчу вас керувати літаком". :) (це я про дерева, і кластерні індекси)
Ну, це ж буде декілька відео 😄
Чудова інфа! 🙌 дякую!
Велике дякую вам за це відео.
Сподобалось відео, бімба!
Красава🔥
Дякую за контент, був би радий побачити продовження цієї теми біль глибше: композитні індекси, при яких умовах бази починають послідовний перебір навіть якщо є індекси, індекси + фільтри, що робити з HR+HW, як можна зменшувати ціну перебудови індексів. Якщо ще й з практичними прикладами + якісь ситуації з власного досвіду - ідеально!)
Підтримую український контент. Чудове відео!
Дякую, прекрасне відео
Супер, дякую за відео!
Дуже доступно, корисно і актуально. Дякую за роботу.
Супер, давай ще!
топ контент, топ формат, красавчик
Дякую за контент!
Знову ж все класно) Було б цікаво в майбутньму зробити більш вузькі напрямки (плейлисти) по самих популярних DMS, але можливо це вже перебір бо треба розкопувати документації багато. Але заради такої шутки в укрїнському ютюбі я готовий допомогти)
Дякую за топ контент!
Супер формат, дякую!
Дякую за цікаве та корисне відео!
Продовжуй у тому ж дусі 🙌🏻✨
відео топ!
Дякую. Чекаю на наступні відео.
Приклади у гітхабі це просто супер!
Дуже інформативно! Вогонь
Дякую, дуже цікаво і корисно)
Чекаємо на продовження) 🚀
Чекаю відео про реалізацію full text search індексів. Дуже цікаво!!! Я навіть ввімкну дзвіночок, перший раз в своєму житті 😅
Дуже крутий відос!!!!!!!!!
Легенда!!!!
цікавий відос, корисна інформація в зрозумілому і приктичному форматі 👍
Дякую, дуже інформативно. А головне - відразу підтверджено практикою.
Норм тєма, давай ще контент, класно получається 😎
❤❤❤❤❤❤❤❤❤❤❤❤
Дуже цікаво. Чекаю нові відео про детальніший розбір індексів)
Дуже цікаво, хочеться вподобати декілька разів.
Дуже сподобалась ваша ідея про базовий курс що ви мали у weblab - надіюсь вистачить натхнення хоч частково його викласти в такому доступному форматі на ютюб.
Чекаю всі наступні теми, давай поглибше)
Молодець! Шикарно робиш саме відео і дуже просто пояснюєш! Дивлюся, лайкаю і Дякую! :)
Цікаво, чекаємо далі. 🦾
Дякую за вiдео. В базах ще дуже цiкава тема це партiшенiнг, різні типи під різні юзкейси. Також цікаво почути про відношення до реалізаціі бізнес логики на рівні бази, чи це повне табу чи можно щось юзати і де зупинитись.
Згадав, стосовно баз даних - було б дуже круто почути про транзакції. Час від часу зіштовхуємось з проблемами, коли в двох паралельних транзакціях взаємодіємо з одним і тим же рядком і падаємо в deadlock. Також детально про рівні ізоляцій, вони означають і як працюють. Заздалегідь дякую
Так, якось доберусь до цієї теми. Там багато цікавих аспектів. Відносно локів, то чим вище рівень ізоляції, тим більше локів всередені для того, щоб транзакції виглядали як такі, що не впливають одна на одну
@@AboutProgramming Є таке. В нас ще була практика, коли через serializable транзакцію намагались пофіксити те, що можна було пофіксити, наприклад, через unique constraint. Виходило не дуже :)
Супер, дуже потрібні знання!
Як варіант для наступних відео в тему алгоритмів - whiteboard interviews. Як розібратись із потрібними алгоритмами, навчитись розв'язувати задачі (не тільки для співбесід), підходи, ресурси.
А про бази даних взагалі топчик!
Відео дуже цікаве:)
Бо базах даних цікаво ше мабуть послухати шось цікаве про міграції, бо вони також часто зустрічаються
А загалом дуже круто, дуже круто розкаєш і слухати все дуже дуже цікаво!!!
Тому чесно для мене будь яка інформація дуже корисна навіть по при то шо багато знайомого але чесно дуже дуже круто!!!
Про міграції цікава тема. Дякую за ідею)
@@AboutProgramming
Там було б ше цікаво порівняти міграції в монго і в sql:)
Дякую за працю. Реально корисно. Якщо буде можливість, було б добре почути про дб івенти
Дякую. Відносно івентів, то ніколи й не користував їх на практиці, якщо я правильно зрозумів про які івенти йде мова
Цікаво було б розібрати архітектуру бази даних для інтернет магазину, або невеликої соціальної мережі. Різні звязки між таблицями і яку базу даних краще використовувати в яких випадках краще використовувати?
Дякую за цікавий український контент! 🇺🇦👍
Дякую за ідею! Так, в цілому можна було б розібрати пару кейсів
Доброго дня, Віктор!
Щиро дякую за дуже корисний контент!
Підкажіть будь ласка, чи вірно я розумію що коли ми сетимо РК, бд автоматично створює індекс по РК полю?
І з приводу інсерт - чи потрібно власноруч перестворювати індекс після додавання чи бд це робить сама автоматично?
Дякую! 🙂 База оновлює індекси автоматично. Але у мене були колись ситуації з битими додатковими індексами й не всі дані були доступні й це вимагало перебудови індексів. Також перебудова може бути потрібна при змінв параметрів таблиці типу collation.
Продолжительность видео самое норм!
Дуже корисне відео, дякую! Але є питання: як індекси допомагають "шукати товари, які закінчуються на щось" (11:24)? Це якийсь тип індексів, які сортують текст з кінця?
Дякую! Відносно індексу, то це скоріше про те, що концептуально це можливо й відповідно на практиці теж можна змусити працювати такий кейс. Треба перебудувати індекс, щоб був для INDEX(REVERSE(column)) й відповідно робити LIKE REVERSE ('%ending'). Також можно використовувати generated column з реверснутими даними
@@AboutProgramming дякую! generated column використовували, але про те, щоб в індексі використовувати функції, не думав
По перше дякую, по друге - лишилося питання.
Якщо ми шукаємо по 2-х колонках (у вас нехай це нейм та дискрипшин), то що у такому випадку робити краще: по 1 індексу на кожну колонку, чи 1 індекс на 2 колонки? (Не знаю, за цю БД, але в МС СКЛ так можна)
В цілому це залежить від селективності індексів. Але зазвичай роблять індекс по декількох колонках. У випадку нейм й дескріпшен, то тут цікавий кейс оскільки зазвичай шукають всередині дескріпшену й тут звичайний індекс не допоможе
збережені процедури, транзакції в бд
Дуже дякую, цікава тема. В мене база ніколи не тупила... Але великих в мене ніколи не було.
Чому база ляже? (3:27)
Дякую за відгук :)
Відносно бази, то якщо у нас на виборку даних уходить 3.3с, а запит приходить кожні 3с, то ми ще не встигли обробити один запит, а нам приходить новий. Й якщо ми уявимо, що ми чекаємо завершення виконання попереднього запиту, то другий запит завершиться через (0.3+3.3=3.6) й через годину нашим запитам треба буде чекати в черзі вже 6 хв й черга буде зростати й зростити й зростати. Звісно, що це дуже абстракта модель (на практиці є багато нюансів), але модель валідна.
Є дуже класна доповідь на тему масштабування - ua-cam.com/video/M5r-IVxP-WI/v-deo.html
@@AboutProgramming також дякую за корисну лінку. це є дуже добре коли після доповідей починають виникати питання - тобто зявляється інтерес
+
на vscode є екстеншн щоб ранити квері "не відходячи від каси". але це вже діло смаку
туторіал по базам даних рідною мовою
чого ще треба хотіти в цьому житті?)
гарне відео, але я не зрозумів як вирішити проблему з запитами типу "%some name%"?
Через пару тижнів буде детальне відео про інвертовані індекси. В деталях покажу, як вони працюють на практиці й поміряємо перформанс :)
цей канал - це скарб україномовного dev-ютубу.
шкодую і дивуюсь, що півроку не попадав мені в рекомендаціях.
Шо за лінукс у батька Гугла? )))))))
Kubuntu 🙂
Поперше, дякую за цікаві теми українською.
Але хотів би побажати заздалегідь бути на відео більше підготовленим в сенсі чіткого плану презентації теми і менше імпровізації. Або вирізати на монтажі зайве
Дякую за відгук. Все впирається в наявність часу, тому був обраний такий формат
А можна 2 лайка !? :)
Тоді треба ще під іншим відео на каналі))
Обов'язково!
Дякую, чекаю наступні відео!