PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Woher wissen Sie, welche Partition bei der Postgres-Hash-Partitionierung verwendet wird?

Durch Reverse Engineering des Codes erhalten Sie die Partitionsnummer mit der folgenden Anweisung:

SELECT (hashtextextended('value', 8816678312871386365)::numeric + 5305509591434766563) % 8;

Ersetzen Sie 8 durch die Anzahl der Partitionen und 'value' mit der fraglichen Zeichenfolge.

Sie können die Partitionsnummer mit satisfies_hash_partition testen . Um zu testen, ob 'value' würde in Partition 6 von 8 in Tabelle tab landen , können Sie ausführen

SELECT satisfies_hash_partition('tab'::regclass, 8, 6, 'value'::text);