sql >> Databáze >  >> RDS >> PostgreSQL

Jaký je význam epochy v txid_current() v postgresql?

Epoch se používá k tomu, aby se txid_current() neobtékalo a začalo od nuly (nebo přesněji od 3, protože hodnoty 0,1,2 se používají interně).

Takže to funguje zjednodušeně:

Postgres má interní 32bitový čítač xid, který se liší od hodnoty vrácené txid_current(). Vnitřní xid se zabalí a resetuje své počítání při každém obtékání.

Na druhou stranu txid_current() vrací 64bit (bigint), ve kterém jsou vysoké bity přírůstkem epochy, který se stane jednou za xid a nezačíná od nuly.

Takže při každém obtékání nastupuje epocha a vysoké bity txid_current() se upravují, aby se zabránilo resetování txid, a místo toho se txid neustále zvyšuje, dokud není dosaženo 64bitového limitu (někdy ve velmi vzdálené budoucnosti dlouho poté, co všichni zemřeme).




  1. Jak můžeme odesílat data v MySQL, když je formulář v node.js nastaven na enctype=multipart/form-data?

  2. Získání podobné zeměpisné délky a šířky z databáze

  3. PSQLException:aktuální transakce je přerušena, příkazy ignorovány až do konce bloku transakce

  4. Mysql – LIMIT podle procenta?