PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Актуализации на място с PostgreSQL

Трябва да се копират само полета, съхранени в ред. За полета, съхранени извън линия в TOAST таблици, се копира само препратката към записа TOAST.

Дали дадено поле се съхранява извън ред зависи от размера на стойността в полето и от типа данни на полето.

Ако кортежите са големи, но имат само няколко полета - като

some_id integer,
frequently_updated integer,
charblob text

тогава няма много смисъл да променяте нещо, защото актуализациите на frequently_updated обикновено няма да пренапише данните в charblob , поне ако е достатъчно голямо, за да си струва да се грижи за него.

OTOH, ако имате таблица с много полета, ще пренаписвате много повече с всяка актуализация.

HOT ще ви помогне само в ограничена степен, тъй като HOT актуализация може да се случи само когато няма актуализирана(и) колона(и) част от индекс и има достатъчно свободно място на същата страница с база данни. За широки редове няма да поберете много копия на страница дори с TOAST, така че HOT ще бъде от ограничена полза.

Може да си струва да разделите такива полета в отделни таблици, ако те наистина се актуализират често, но останалата част от таблицата има широки редове, които не се променят много.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails разширяващи полета с обхват, PG не го харесва

  2. Персонализиран номер на седмицата на PostgreSQL - първата седмица, съдържаща 1 февруари

  3. Liquibase/PostgreSQL:как да запазим правилно регистъра на таблицата?

  4. Как да използвам задействания „за изявление“ в postgres?

  5. Команда Postgresql COPY, даваща грешка за отказа на разрешения