Как рассчитать размер таблиц, которые сохраняются на диске?(PosgreSQL) - PullRequest
0 голосов
/ 29 ноября 2018

Как рассчитать размер таблиц, которые сохраняются на диске?На основании моего интернет-поиска, как рассчитать длину таблицы по формуле:

8KB × ceil (количество записей / этаж (этаж (8KB × fillfactor - 24) / (28 + длина данных1 запись)))

Пример:

Column    |     Type      |
aid      | integer       |
bid      | integer       |
abalance | integer       |
filler   | character(84) |

длина данных 1 записи = помощь (4 байта) + ставка (4 байта) + абаланс (4 байта) + наполнитель (84 байта)+ 1 байт) = 97 байт Длина данных записи должна быть округлена до 8 байт.

=> Длина данных 1 записи составляет 104 байта.

Поэтому я думаю, что 1 символсодержится в 1 байте памяти.Однако столбец «заполнитель» может быть введен с 84 символами «a» (однобайтовыми) или 84 символами «あ» (двухбайтовыми)

Я не знаю, почему двухбайтовые символы могут содержаться воднобайтовый символ?Можете ли вы объяснить мне этот вопрос?

1 Ответ

0 голосов
/ 29 ноября 2018

Это намного проще.Используйте pg_relation_size для расчета размера одного отношения (без связанных таблиц и индексов TOAST) или pg_total_relation_size для включения всех связанных объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...