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

треки / 03

Бази даних і структури даних

9 відео · 5 год 5 хв

Найщільніший і найретельніше вибудуваний кластер каналу. Віктор будує навчальний шлях, де кожне відео створює проблему, яку розвʼязує наступне: спершу сирий шок від навіщо взагалі індекси (той самий запит, у 60 000 разів швидше), потім дерева, щоб пояснити, чим індекс є фізично і чому диски вимагають неглибоких B+ дерев, далі нутрощі індексів (MySQL проти Postgres, кластерний проти heap, UUID проти автоінкременту — з експериментами на 16 млн рядків), потім місце, де B-дерева пасують, — пошук усередині рядка — яке відкриває повнотекстовий пошук та інвертовані індекси (побудовані вручну, стиснені й забенчмарчені проти рідного FULLTEXT у MySQL), і нарешті фільтри Блума як імовірнісний фінал, що обганяє кожну базу даних і кеш у цій драбині. Усе вимірюється наживо, все спирається на його історії з практики — насамперед на систему повнотекстового пошуку на 300 ТБ, яку він власноруч побудував у продакшені, — а повторюваний висновок і є тезою каналу: знай властивості й нутрощі своїх інструментів, а не хайп.

Порядок перегляду

  1. 1

    жива демонстрація в MySQL: 3.3 с → 0.05 мс на 10 млн рядків, плюс де індекси ламаються

    19:22 · 15 розділів
  2. 2

    O(n*m) проти O(n+m), закодоване наживо на JS і спроєктоване на індекси баз даних

    23:44 · 15 розділів
  3. 3

    місток на дошці: бінарний пошук → BST → AVL → неглибокі дискові B+ дерева

    15:56 · 13 розділів
  4. 4
  5. 5

    вручну будує інвертований індекс продакшен-рівня через map-reduce; бʼє MySQL LIKE: 40 с → 21 мс

    48:15 · 15 розділів
  6. 6

    розділення на файл токенів + бінарні postings, n-грамні токенізатори, пошук через S3 Range-запити

    14:34 · 8 розділів
  7. 7

    фільтри Блума проти Map/MySQL/Redis/Memcached на 10 млн ключів, і каскад CRLite у Firefox

    51:02 · 15 розділів
  8. 8

    Q&A-продовження про UUID-ключі та стиснення інвертованого індексу

    17:50 · 15 розділів
  9. 9
    Відповідаю на питання №2 середній

    алгоритми в реальному житті: аналіз складності на ревʼю, історія з практики про топологічне сортування стека

    1:16:50 · 25 розділів