PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Множество индекси срещу единичен индекс на множество колони в postgresql

Независимо колко индекса сте създали в релация, само един от тях ще бъде използван в определена заявка (кой зависи от заявката, статистиката и т.н.). Така че във вашия случай няма да получите кумулативно предимство от създаването на два индекса с една колона. За да получите най-голяма производителност от индекса, бих предложил да използвате съставен индекс на (местоположение, клеймо за време).

Имайте предвид, че заявки като ... WHERE timestamp BETWEEN smth AND smth няма да използва индекса по-горе, докато заявки като ... WHERE location = 'smth' или ... WHERE location = 'smth' AND timestamp BETWEEN smth AND smth ще. Това е така, защото първият атрибут в индекса е от решаващо значение за търсене и сортиране.

Не забравяйте да изпълните

ANALYZE;

след създаване на индекс с цел събиране на статистика.

Актуализация: Като @MondKin споменати в коментарите, определени заявки всъщност могат да използват няколко индекса в една и съща релация. Например, заявете с OR клаузи като a = 123 OR b = 456 (ако приемем, че има индекси и за двете колони). В този случай postgres ще извърши сканиране на растерни индекси и за двата индекса, ще изгради обединение на получените растерни изображения и ще го използва за сканиране на купчина растерни изображения. При определени условия същата схема може да се използва за AND заявки, но вместо обединение ще има пресичане.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво се е променило между postgres jdbc 8.4 и 9 по отношение на bytearrays?

  2. PostgreSQL ОПИСАТЕ ТАБЛИЦА

  3. Заявката за търсене на Django Admin не достига индекса на Postgres

  4. Как да работим с таблици без PRIMARY KEY в Hibernate?

  5. Контейнерът на Postgres се срива с „файловете на базата данни са несъвместими със сървъра“, след като изображението на контейнера е актуализирано до най-новото