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

Размер на таблицата с оформление на страницата

Вашето изчисление е отклонено в няколко точки.

Удебелен акцент е мой, за да отговоря на въпроса в коментара.

  • HeapTupleHeader заема 23 байта . Но всеки кортеж („елемент“ – запис на ред или индекс) има идентификатор на елемент в началото на страницата с данни към него, общо на споменатите 27 байта. Разликата е уместна, тъй като действителните потребителски данни започват от кратно на MAXALIGN от началото на всеки елемент и идентификаторът на елемента не се брои срещу това отместване - както и действителния "размер на кортежа".

  • 1 байт запълване поради подравняване на данни (кратно на 8), което се използва за NULL bitmap в този случай.

  • Без подпълване за тип varchar (но допълнителния байт, споменат по-горе)

И така, действителното изчисление (с максимално попълнени колони) е:

    23    -- heaptupleheader
 +   1    -- NULL bitmap (or padding if row has NO null values)
 +   9    -- columns ...
 + 101 
 +   2 
 + 101 
 +   4 
 +  11
-------------
   252 bytes

 +   4    -- item identifier at page start

Свързани:

Ще намерите много повече в списъка с връзки вдясно от тези отговори.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ltree модулът на PostgreSQL подходящ ли е за резбови коментари?

  2. Как да намеря името на базата данни на папките \data\base postgres?

  3. Заобикаляне на уникалните ограничения на Sequelize в асоциации на belongsToMany

  4. група по дата агрегатна функция в postgresql

  5. Вземете идентификатора на последното вмъкване след подготвено вмъкване с PDO