ну сразу описка я не претендую на точность, хорошо если меня поправят. Я очень давно не занимался базами
- у тебя есть база на 10 лямов строк. Это файл на диске
- у тебя есть индекс на 10 лямов. Это файл на диске, в идеале в ОЗУ
- ты делаешь селект по ключу индекса, база перебирает индексы, находит нужный, в нем адрес физический строки на диске, находит в файле строку. Но по 10 лямов это не быстро.
- шардинг - когда у тебя по математической функции индексы и база бьются на много маленьких баз и индексов.
- он по мат функции от индекса сначала находит где искать индекс, затем уже в маленьком списке индексов быстро находит индекс и в нем адрес строки записи на диске