Re: Umfang von OID's

From: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Umfang von OID's
Date: 2007-06-20 12:40:38
Message-ID: 20070620124038.GB10728@a-kretschmer.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

am Wed, dem 20.06.2007, um 12:01:33 +0000 mailte Martin Spott folgendes:
> Moin,
> kann mir mal jemand etwas Sortierungshilfe geben ? ;-)

ich versuch es mal.

>
> Stimmt es, dass ich unabhaengig von der verwendeten Plattform
> (64-bittig vs. 32-bittig Solaris oder Linux) immer maximal 2^32 OID's
> "verbraten" kann ?

Ja. OID ist vom Typ int4.

>
> Wenn ich also Tabellen explizit mit OID's erzeuge und die dann auch als
> PRIMARY KEY verwende, dann stosse ich, abzueglich etwas
> Verwaltungs-Overhead, grob geschaetzt bei gut 4 Milliarden
> Tabellenzeilen an eine Grenze. Richtig ?

Ja.
Die Verwendung von OIDs als PK ist im übrigen eine schlechte Idee.
Stichwort: Backup/Restore und bereits verwendete OIDs.

>
> Wenn ich die Tabellen _nicht_ explizit mit OID's erzeuge, dann stosse
> ich ebenfalls an dieselbe Grenze, weil die Dinger ohnehin zur internen
> Organisation verwendet werden. Auch richtig ?

Nein. Per default werden sie nicht mehr angelegt, weil nicht benötigt.
Wenn Du mehr als 4 Mrd pro table brauchst, nimmst Du ein BIGSERIAL:

test=# create table bigtable (id bigserial);
NOTICE: CREATE TABLE will create implicit sequence "bigtable_id_seq" for serial column "bigtable.id"
CREATE TABLE
test=*# select max_value from bigtable_id_seq;
max_value
---------------------
9223372036854775807
(1 row)

Ich unterstelle einfach mal, das dies Dir reichen sollte.

>
> Hat mal jemand eine System eingerichtet und ist an diese Grenze
> gestossen ? Was passiert dann, kann ich dann keine neuen Zeilen mehr in
> 'ne Tabelle schreiben und der Rest laeuft froehlich weiter ?

Es passieren bösen Dinge, ja.:
- Deine Katze wird überfahren
- der Wellensittich fällt tot von der Stange
- die Frau geht fremd
- http://www.google.de/search?hl=de&q=postgresql+oid+wraparound&btnG=Suche&meta=

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net

In response to

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Martin Spott 2007-06-20 21:35:24 Re: Umfang von OID's
Previous Message Martin Spott 2007-06-20 12:01:33 Umfang von OID's