Thread: [SUPPORT] How to calculate size of tables which are saved on disk?
Hello Everyone,
My name is Thuy.
This matter is not bug, but I have a question as below. May you help me?
How to calculate size of tables which are saved on disk?
Based on my internet searching, how to calculate the length of the table based on the formula:
8KB × ceil(number of records / floor(floor(8KB × fillfactor - 24) / (28 + data length of 1 record)))
Example:
Column | Type |
----------+---------------+
aid | integer |
bid | integer |
abalance | integer |
filler | character(84) |
data length of 1 record = aid(4 bytes) + bid(4 bytes) + abalance(4 bytes) + filler(84 bytes + 1 byte) = 97 byte
The data length of a record must be rounded to 8 bytes.
=> Data length of 1 record is 104 bytes.
Therefore, I think that 1 character is contained in 1 byte of memory.
However, column "filler" can be input with 84 characters "a" (single byte) or 84 characters "あ" (double-byte)
I don’t know why double-byte character can be contained in single byte character?
Can you explain to me this question?
Thank you in advance.
Nguyen Thi Nhu Thuy
Greetings, Nguyen. Have you checked https://wiki.postgresql.org/wiki/Disk_Usage ? You wrote 29.11.2018, 10:40: > Hello Everyone, > My name is Thuy. > This matter is not bug, but I have a question as below. May you help me? > How to calculate size of tables which are saved on disk? > Based on my internet searching, how to calculate the length of the table based on the formula: > 8KB × ceil(number of records / floor(floor(8KB × fillfactor - 24) / (28 + data length of 1 record))) > Example: > Column | Type | > ----------+---------------+ > aid | integer | > bid | integer | > abalance | integer | > filler | character(84) | > > data length of 1 record = aid(4 bytes) + bid(4 bytes) + abalance(4 > bytes) + filler(84 bytes + 1 byte) = 97 byte > The data length of a record must be rounded to 8 bytes. =>> Data length of 1 record is 104 bytes. > Therefore, I think that 1 character is contained in 1 byte of memory. > However, column "filler" can be input with 84 characters "a" > (single byte) or 84 characters "あ" (double-byte) > I don’t know why double-byte character can be contained in single byte character? > Can you explain to me this question? > Thank you in advance. -- Kind regards, Pavlo mailto:pavlo.golub@cybertec.at