列と制約のあるテーブルがあります。
height smallint,
length smallint,
diameter smallint,
volume integer,
idsensorfragments integer,
CONSTRAINT sensorstats_idsensorfragments_fkey FOREIGN KEY (idsensorfragments)
REFERENCES sensorfragments (idsensorfragments) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
(主キーなし)。現在、28 978 112のレコードがありますが、私の意見では、テーブルのサイズが大きすぎます。
クエリの結果:
select pg_size_pretty(pg_total_relation_size('sensorstats')), pg_size_pretty(pg_relation_size('sensorstats'))
は:
"1849 MB";"1226 MB"
idsensorfragments列にはインデックスが1つだけあります。簡単な計算を使用すると、1つのレコードに約66,7 B(?!?!)かかることがわかります。この番号がどこから来たのか誰か説明してもらえますか?
5列=2+ 2 + 2 + 4 + 4=14バイト。インデックスが1つあり、主キーはありません。レコードごとに追加の50Bはどこから来るのですか?
PSテーブルは真空にされ、分析され、インデックスが再作成されました。