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

W miejscu aktualizacje z PostgreSQL

Należy skopiować tylko pola przechowywane w tekście. W przypadku pól przechowywanych poza linią w tabelach TOAST kopiowane jest tylko odniesienie do wpisu TOAST.

To, czy pole jest przechowywane poza linią, zależy od wielkości wartości w polu i typu danych pola.

Jeśli krotki są duże, ale mają tylko kilka pól - na przykład

some_id integer,
frequently_updated integer,
charblob text

wtedy nie ma sensu zmieniać czegokolwiek, ponieważ aktualizacje frequently_updated generalnie nie przepisuje danych w charblob , przynajmniej jeśli jest na tyle duży, że warto się nim opiekować.

OTOH, jeśli masz tabelę z wieloma polami, z każdą aktualizacją będziesz przepisywać znacznie więcej.

HOT pomoże ci tylko w ograniczonym zakresie, ponieważ aktualizacja HOT może nastąpić tylko wtedy, gdy żadne zaktualizowane kolumny nie są częścią indeksu i na tej samej stronie bazy danych jest wystarczająco dużo wolnego miejsca. W przypadku szerokich rzędów nie zmieścisz wielu kopii na stronie, nawet w przypadku TOAST, więc HOT przyniesie ograniczone korzyści.

Warto podzielić takie pola na osobne tabele, jeśli są one naprawdę często aktualizowane, ale reszta tabeli ma szerokie wiersze, które niewiele się zmieniają.




  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 działa Acosd() w PostgreSQL

  2. PostgreSQL LIKE wariacje wydajności zapytań

  3. Zapytanie PostgreSQL z dynamicznymi kolumnami i licznikami z join

  4. transfer danych z jednej bazy danych do innej bazy w odoo

  5. Zignorowano zdalny adres URL połączenia WildFly Postgres DataSource