PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Co oznacza epoch w txid_current() w postgresql?

Epoch służy do zapobiegania zawijaniu txid_current() i rozpoczynaniu od zera (a dokładnie od 3, ponieważ wartości 0,1,2 są używane wewnętrznie).

Działa to tak:

Postgres posiada wewnętrzny 32-bitowy licznik xid, który różni się od wartości zwracanej przez txid_current(). Wewnętrzny xid zawija się i resetuje swoje zliczanie przy każdym zawinięciu.

Z drugiej strony, txid_current() zwraca 64bit (bigint), w którym wysokie bity są przyrostem epoki, co zdarza się raz na zawinięcie xid i nie zaczyna się od zera.

Tak więc przy każdym okrążeniu rozpoczyna się epoka, a wysokie bity txid_current() są modyfikowane, aby zapobiec resetowaniu txids, a zamiast tego txids kontynuują inkrementację aż do osiągnięcia limitu 64 bitów (czasami w bardzo odległej przyszłości, długo po tym, jak wszyscy umrzemy).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać dostęp do postgresql w Dockerze za pomocą sqlalchemy?

  2. typ danych npgsql nieznany podczas używania group by

  3. Nie mogę połączyć mojej aplikacji Android Studio z PostgreSQL

  4. Generowanie danych i jakość sprzętu

  5. Jak ręcznie skonfigurować i uruchomić PostgreSQL w systemie Windows?