Индексирование четырех столбцов? - PullRequest
2 голосов
/ 13 июля 2011

У меня есть таблица, которую я использую для получения времени вождения, в зависимости от долготы и широты пункта отправления и пункта назначения. Несмотря на то, что я использую API Google, чтобы находить новые времена коммутирования, я сохраняю результаты предыдущих запросов локально, так что, если мне потребуется запросить тот же диск снова, мне не придется использовать Google. (Веб-служба Google регулируется.) В любом случае, таблица состоит из пяти столбцов:

    LatStart (smallmoney)
    LongStart (smallmoney)
    LatEnd (smallmoney)
    LongEnd (smallmoney)
    DriveTime (Int.  In seconds)

(Оказывается, Smallmoney работает очень хорошо для долготы и широты, если вам нужно только четыре цифры после десятичной дроби, что достаточно точно для этого.)

Мой вопрос: Для оптимальной производительности в запросах SELECT, я должен индексировать все четыре столбца долготы / Широты?

И второй вопрос: мы можем предположить, что он не будет часто удаляться, но в долгосрочной перспективе по мере роста таблицы он все равно будет вставлять строки примерно на 25% так же часто, как и при выборе строк. Следовательно, будет ли индекс для всех четырех столбцов вредным для вставки запросов?

Ответы [ 2 ]

1 голос
/ 13 июля 2011

Индекс в столбцах long / lat поможет выбрать (прочитать) производительность за счет производительности вставки / обновления / удаления (записи).

Измерьте производительность самостоятельно до и после добавления индекса, чтобы определить, подходит ли он.

1 голос
/ 13 июля 2011

Если вы выполняете поиск по всем 4, то, вероятно, вы захотите их проиндексировать.

Еще один фактор, который вы должны учитывать, - это заполнение, которое вы добавляете в свой индекс.Более высокое заполнение сокращает объем повторной подкачки, которая должна быть выполнена для вашего индекса (на самом деле это не называется повторной подкачкой, но слово ускользает от меня на данный момент), что является преимуществом для написания и затрат на чтение.Нижнее заполнение лучше для чтения.

Я бы проиндексировал все 4, а затем немного поиграл с отступом, чтобы найти наилучшую настройку.

...