Наиболее распространенная реализация индексов использует B-деревья, чтобы обеспечить несколько быстрый поиск, а также достаточно быстрое сканирование диапазона. Здесь слишком много объяснять, но вот статья Википедии о B-деревьях . И вы правы, первый столбец, который вы объявляете в индексе create, будет столбцом высокого порядка в полученном B-дереве.
Поиск в столбце высокого порядка сводится к сканированию диапазона, а B -tree index может быть очень полезен для такого поиска. Самый простой способ увидеть это - по аналогии со старыми карточными каталогами, которые у вас есть в библиотеках, которые еще не были преобразованы в онлайн-каталоги.
Если вы ищете все карты для авторов, чья фамилия «Clemens», вы просто заходите в каталог авторов и очень быстро найдете ящик с надписью «CLE-CLI» на передней панели. Это правильный ящик. Теперь вы выполняете неформальный бинарный поиск в этом ящике, чтобы быстро найти все карты, которые говорят «Клеменс, Роджер» или «Клеменс, Самуэль».
Но предположим, что вы хотите найти все карты для авторов, чье имя - «Самуэль». Теперь вы за рулем, потому что эти карты не собраны в одном месте в каталоге «Автор». Подобное явление происходит с составными индексами в базе данных.
Различные СУБД отличаются тем, насколько умны их оптимизаторы при обнаружении сканирования диапазона индексов и точно оценивают их стоимость. И не все индексы являются B-деревьями. Вам нужно будет прочитать документы для вашей конкретной СУБД, чтобы получить реальную информацию.
Нет. Вы можете получить доступ к телефону через родной API, но не через веб-приложение.