Краткая версия вопроса:
Если у вас есть таблица с большим количеством маленьких строк, и вы хотите извлечь одну запись из этой таблицы с помощью индекса, вероятно, состоящего издве колонки, вероятно, будут чем-то, что будет дешевым, быстрым или дорогим и медленным
Более длинная версия вопроса и фона:
Я работаю консультантомс компанией по разработке программного обеспечения, и у меня есть с ними спор о влиянии на производительность части функциональности, которую я хочу добавить в приложение, которое они создают (и я проектирую).
В данный момент мы записываем запись журнала каждый раз, когда кто-то извлекает запись клиента.Я хочу, чтобы имя и время последнего человека в основном обращались к этой записи на страницу клиента каждый раз, когда эта запись извлекается.
Они говорят, что это повлияет на производительность, но, исходя из моих разумных, но не экспертных знаний о том, как работают B-деревья, это кажется неправильным, даже если таблица очень большая.
Если вы создаете индекс по GUID клиентской записи и дате / времени доступа (по убыванию), то вы должны иметь возможность извлечь требуемую запись с помощью сканирования индекса, которое просто нужно найтипервая запись для этого GUID, а затем остановить?Кроме того, при использовании индекса b-дерева большая часть индекса будет кэшироваться, поэтому необходимое количество обращений к физическому диску будет очень небольшим, и, следовательно, время запроса будет значительно меньше 1 с.
Или я неправильно понял