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

PostgreSQL композитен първичен ключ

Ако създадете съставен първичен ключ, на (x, y, z) , PostgreSQL реализира това с помощта на един UNIQUE многоколонен btree индекс на (x, y, z) . Освен това и трите колони са NOT NULL (имплицитно), което е основната разлика между PRIMARY KEY и UNIQUE INDEX .

Освен очевидни ограничения върху вашите данни, индексът с няколко колони също има малко по-различен ефект върху производителността на заявките от три отделни индекса на x , y и z .

Свързана дискусия на dba.SE:

  • Работа с индекси в PostgreSQL

С примери, сравнителни показатели, дискусии и поглед върху новата функция на сканирането само за индекси в Postgres 9.2.

По-специално първичен ключ на (x, y, z) ще ускори заявките с условия на x , (x,y) или (x,y,z) оптимално. Също така ще помогне със заявки за y , z , (y,z) или (x,z) но в много по-малка степен.

Ако трябва да ускорите заявките за последните комбинации, може да искате да промените реда на колоните във вашето PK ограничение и/или да създадете един или повече допълнителни индекси. Вижте:

  • Съставният индекс добър ли е и за заявки в първото поле?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL IN оператор с слаба производителност на подзаявката

  2. Копирайте няколко от колоните на csv файл в таблица

  3. Как да заявя вложени масиви в колона на postgres json?

  4. Бавно подреждане на заявките по колона в обединена таблица

  5. Apache Spark:JDBC връзката не работи