【发布时间】:2021-03-17 18:27:44
【问题描述】:
我有下一个 psql 数据库:
CREATE TABLE "readings33" (
"uniqueid" BIGSERIAL PRIMARY KEY,
"uniqueid_sensor" INTEGER NOT NULL,
"timestamp" TIMESTAMP NOT NULL DEFAULT NULL,
"value" VARCHAR(15) NOT NULL,
CONSTRAINT "FK_readings_sensors" FOREIGN KEY ("uniqueid_sensor") REFERENCES "public"."sensors" ("uniqueid") ON UPDATE NO ACTION ON DELETE CASCADE
);
AFAIK 总大小应该是:
"uniqueid" -> 8 bytes
"uniqueid_sensor" -> 4 bytes
"timestamp" -> 10 bytes
"value" VARCHAR(15) 8 bytes (because my value length for the test is a string with 8 bytes)
所有的总和是 8+4+10+8 = 30 字节,但是当我将 100.000 行写入数据库时,这占用了 12.5 Mib,即每行 125 字节。我已经用 10.000 行完成了这个文本,并且关系大致相同......谁能告诉我为什么这个增量是大小??
提前致谢
【问题讨论】:
-
每行还有 23 个字节的开销,然后是 data type alignment(顺便说一句:仅时间戳 takes 8 bytes)
-
我得到的不到 9MB,其中 1/4 用于主键索引。
-
您是如何准确测量桌子尺寸的?请edit您的问题并添加该查询。
-
测量由 HeidiSQL 使用它的接口完成
标签: postgresql heidisql