Предположим, у вас есть две таблицы:
Student(id, class) // 100 rows
Course(id, course) // 100 rows
Первоначально предположим, что в обеих таблицах нет индекса. Теперь предположим, что у нас есть запрос:
select id, course
from Student join course
on student.id = Course.id and student.id = 20
Поскольку у вас нет индекса, вам нужно просмотреть все строки в обеих таблицах.
Time complexity - O(100 x 100)
Теперь мы обновили таблицу и Student.id
— это первичный ключ. На нем будет создан кластеризованный индекс, и теперь общая сложность
Time complexity - O(log 100) // Nested loop join
Как вы думаете, мое предположение верно? Кто-нибудь может мне помочь?
Алгоритм соединения вложенного цикла находится здесь:
select id, course from Student join Course ON student.id = Course.id WHERE student.id = 20
- person Lukasz Szozda   schedule 12.12.2015JOIN .. ON...
. - person Lukasz Szozda   schedule 12.12.2015