sql >> Databasteknik >  >> RDS >> PostgreSQL

Varför kan inte skapa partitionstabell

"Deklarativ tabellpartitionering", det vill säga partitionering som en förstklassig funktion i DBMS med sin egen syntax, var tillagt i PostgreSQL 10 .

I tidigare versioner kan du uppnå samma effekt med lite mer ansträngning med hjälp av "tabellarv". Det finns en sida i manualen som beskriver hur man gör detta manuellt , sammanfattat som:

  1. Skapa "master"-tabellen, från vilken alla partitioner kommer att ärva.
  2. Skapa flera "underordnade" tabeller som var och en ärver från huvudtabellen.
  3. Lägg till tabellbegränsningar i partitionstabellerna för att definiera de tillåtna nyckelvärdena i varje partition.
  4. Skapa ett index på nyckelkolumnerna för varje partition, liksom alla andra index du vill ha.
  5. Du kan valfritt definiera en utlösare eller regel för att omdirigera data som infogats i huvudtabellen till lämplig partition.
  6. Se till att konfigurationsparametern constraint_exclusion inte är inaktiverad i postgresql.conf. Om så är fallet kommer frågor inte att optimeras som önskat.

För att göra detta enklare, om du inte kan uppgradera till version 10, kan du använda ett tillägg som pg_partman som ger dig ytterligare funktioner för att ställa in och hantera partitionsuppsättningar.



  1. Fyra sätt att använda Microsoft Access

  2. Hur man visar aktuella anslutningar i MySQL Workbench med hjälp av GUI

  3. SQL-likhet/ojämlikhet jämförelse med nullvärden

  4. ElasticSearch river JDBC MySQL tar inte bort poster