Составной индекс Postgresql для пространственных и временных параметров - PullRequest
6 голосов
/ 20 апреля 2011

У нас есть таблица, в которой миллионы строк с геометриями PostGIS.Запрос, который мы хотим выполнить: какие самые последние записи попадают в ограничивающую геометрию?Проблема с этим запросом заключается в том, что у нас часто будет большое количество элементов, соответствующих ограничивающему прямоугольнику (радиус которого составляет около 5 км), и Postgres затем придется перепроверить все возвращенные элементы внутри ограничивающего прямоугольника, чтобыих отметка времени, затем сортировка и возврат самой последней N.

Такое ощущение, что нам нужен индекс (составной?), который учитывает как пространственный индекс GIST, так и отметку времени.Это возможно?Я попробовал несколько комбинаций на шаге CREATE INDEX, но пока ничего не получалось.

1 Ответ

0 голосов
/ 23 апреля 2011

Я бы лучше сделал два индекса, один пространственный и второй в столбце метки времени. PostgreSQL может очень хорошо комбинировать индексы, и ему не нужно «перепроверять» найденные строки. Он может использовать индексы, чтобы получить строки в геометрии и отсортировать их, используя другой индекс.

...