ááŒá®ážááŒá®ážáá¬ážáá¬áž áá±áá¬á
á®ážááŒá±á¬ááºážáá»á¬ážááᯠááŸááºáááºážáááºááŒááºážááá¯ááºáᬠáá±á«ááºážá
ááºááŒáá·áº áááºáááºáá±á¬áºááŒáááºá
á¡ááŒá±á¬ááºážááŒá±á¬áá«áááºá TOAST áááºáááºáá»á¬ážááŸáá·áº áá±áᬠáá»áááºááŸáááŸá¯. âáá»ááºážáá»áŸá¡á¬ážááŒáá·áºáâ á€áááºážáááºážáá»á¬ážááẠá¡áááºážá¡ááŒá áºáá»á¬ážá áœá¬ááᯠááááºážáááºážáááºááá¯ááºáá±á¬áºáááºáž á¡ááºááºáá¯ááºááᯠáá¯á¶ážááááŒá¯ááŒááºáá²áá±áá«á
áááºááá¯á·áááºááá¯á
á±áá¬áá° áááºážáááá±á¬ááá¬áá¡á á
á±á¬áá·áºááŒáá·áºááŸá¯ááá¯ááºážáá®ážáá«ážááᯠááááºážáááºážáá¬ážáá±á¬ááŒá±á¬áá·áº áááºážááŸáá·áºáááºáááºá áá»áœááºá¯ááºááá¯á·áá¡ááœá±á·á¡ááŒá¯á¶ááẠá¡ááœááºá¡áá»áá¯ážááŒá
áºááœááºážáá«áááºá á¡áá»á¬ážá¡á¬ážááŒáá·áº append-only ááŸááºáááºážáááºáá¬ážáá±á¬áá±áá¬áá
ááºážáááºážáá»ááºáá»á¬ážáá á¡áááºá áááºááẠáá±áá¬áá±á·á
áºááᯠá¡á
á¬áž disk ááá¯á· á
á¬áá±ážáááºážááᯠáááºáááºáá²á·ááá¯á· áááºáá±ážááá¯ááºáááºááᯠá¡á¶á·ááŒáá±áá«áá 200MB / s áá²á· áááºááẠ- áá»á±ážáá°ážááŒá¯á ááŒá±á¬ááºá¡á±á¬ááºááŸá¬á
á¡áá»ááºá¡áááºááŒá®ážááœá±áá²á· áá»áŸáá¯á·ááŸááºáá»ááºáá±ážááœá±
á¡áá¯ááºááá¯ááºáá±ážá¡áá»ááºážá¡á¬ážááŒáá·áº
ááá¯ááááºážá
áá»áœááºá¯ááºááá¯á· "ááŒááºáž" áá±áá¬ááᯠáá±ážáá¬ážááá·áº ááá¬ážáá áºáá¯á ááœá²á·á ááºážáá¯á¶ááᯠááŒáá·áºááŒáá«á áá¯á· - ááá¯ááá¯áááºááŸá¬ á€áá±áá¬ááœáẠááŸááºáááºážááá·áºááœááºážááŸá¯á០áá°áááºážá á¬áá¬ážááŒá áºáá«áááºá
CREATE TABLE rawdata_orig(
pack -- PK
uuid NOT NULL
, recno -- PK
smallint NOT NULL
, dt -- клÑÑ ÑекÑОО
date
, data -- ÑаЌПе главМПе
text
, PRIMARY KEY(pack, recno)
);
áá¯á¶ááŸááºááá¹ááá¬áá áºáᯠ(á¡ááá¯ááºážááœá²ááŒá®ážááŒá®á áá«ááŒá±á¬áá·áº áá«á á¡ááá¯ááºážáá¯á¶á á¶áá¯á¶á á¶áá áºáá¯áá«)á á¡áá±ážááŒá®ážáá¯á¶ážá¡áá¬á á á¬áá¬ážáá«á ááá«ááᶠáá±á¬áºáá±á¬áº áá±á¬ááºááŒá±á¬ááºáááºá
PG áá
áºáá¯ááŸá ááŸááºáááºážáá
áºáá¯á "áá¯ááºááá¯ááºážááá¯ááºáá¬" á¡ááœááºá¡á
á¬ážááẠáá±áá¬á
á¬áá»ááºááŸá¬áá
áºáá¯áááºááá¯á áááááºážááá¯ááºááá¯ááºáá±á¬áºáááºáž "áá¯áá¹áááá±á" á¡ááœááºá¡á
á¬ážááẠáá¯á¶ážáááœá²ááŒá¬ážááá·áºááá
á¹á
ááŒá
áºááŒá±á¬ááºáž áááááá«á á¡ááœááºáá
áºáá¯ááá¯á· áá¯áááºáááºááá¯áž (varchar/text/bytea) ááá¯áá±ážáááºá á¡áá¯á¶ážááŒá¯áá«á
PostgreSQL ááẠáá¯á¶áá±á á¬áá»ááºááŸá¬á¡ááœááºá¡á á¬áž (áá¯á¶ááŸááºá¡á¬ážááŒáá·áº 8 KB) ááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž tuple áá»á¬ážááᯠá á¬áá»ááºááŸá¬áá»á¬ážá áœá¬ááᯠáá»á²á·ááœááºááẠááœáá·áºáááŒá¯áá«á ááá¯á·ááŒá±á¬áá·áºá á¡ááœááºááŒá®ážáá¬ážáá±á¬ á¡ááœááºáááºááá¯ážáá»á¬ážááᯠááá¯ááºááá¯ááºááááºážáááºážááẠáááŒá áºááá¯ááºáá«á á€ááá·áºáááºáá»ááºááᯠáá»á±á¬áºááœáŸá¬ážáááºá¡ááœáẠááŒá®ážáá¬ážáá±á¬á¡ááœááºáááºááá¯ážáá»á¬ážááᯠááááááºáá¬ážááŒá®áž/ááá¯á·ááá¯áẠáá¯ááºááá¯ááºážááá¯ááºáá¬ááá¯ááºážáá»á¬ážá áœá¬ááᯠááá¯ááºážááŒá¬ážáá¬ážáááºá áááºážááẠá¡áá¯á¶ážááŒá¯áá°á០ááááááŒá¯áááá² áá¬áá¬áá¯ááºá¡áá»á¬ážá á¯á¡áá±á«áº áááºáá±á¬ááºááŸá¯á¡áááºážáááºáá¬ááŸááááºá áá®áááºážááᯠTOAST ááá¯á· áá±á«áºáááº...
ááááºáá±á¬á·á "ááŒá
áºááá¯ááºáá»á±ááŒá®ážáá¬ážáá±á¬" á¡ááœááºáá»á¬ážáá«áá±á¬ááá¬ážááá¯ááºážá¡ááœááºá¡ááá¯á¡áá»á±á¬ááº
TOAST(
chunk_id
integer
, chunk_seq
integer
, chunk_data
bytea
, PRIMARY KEY(chunk_id, chunk_seq)
);
ááá¯ááá¯áááºááŸá¬ áá»áœááºá¯ááºááá¯á·ááẠâááŒá®ážáá¬ážáá±á¬â áááºááá¯ážááŒáá·áº á
á¬ááŒá±á¬ááºážáá
áºáá¯ááᯠáá±ážááá«áá data
áá«á០á¡á
á
áºá¡ááŸáẠááŸááºáááºážáááºááŸá¯ ááŒá
áºáá±á«áºáá¬ááŸá¬áá«á áááºáá
á¬ážááœá²ááŸáá·áº áááºážá PK á¡ááœááºáá¬áá TOAST ááŸáá·áº áááºážá PK ááá¯á·áááºážááŒá
áºáááºá.
TOAST ááŒáá¬ááᯠáá»áŸá±á¬á·áá»ááŒááºážá
áá«áá±ááá·áº áá»áœááºáá±á¬áºááá¯á·áá²á· ááŸááºáááºáž á¡áá»á¬ážá á¯áᬠááŒá®ážááŒá®ážáá¬ážáá¬ážáá±á¬á· ááá¯ááºáá±ážáá«áá°ážá 8KB ááŸáá·áº ááá¯ááºáá®ááááºá - áá®á¡ááœáẠááá¯ááºáá¶áááºááá¯á á¯áááá²..
á€áá±áá¬ááœáẠá¡áááºá¡áá»ááºážááẠáá»áœááºá¯ááºááá¯á·áá¡áá°á¡áá®ááá¯á· áá±á¬ááºááŸááá¬áá«áááºá STORAGE
- ááá¯ážáá»á²á· compression ááŸáá·áº áá®ážááŒá¬áž storage ááŸá áºáá»áá¯ážáá¯á¶ážááᯠááœáá·áºááŒá¯áááºá áá® á á¶ááœá±ážáá»ááºááŸá¯ TOAST á¡áá»á¬ážá á¯ááŸáá·áº ááá¯ááºáá®áá±á¬ áá±áá¬á¡áá»áá¯ážá¡á á¬ážáá»á¬ážá¡ááœááºá á¡áááºážá á¡áááºážááŒá®ážáá±áá±ážááẠá á¬ážááœá²á¡ááŒááºáááºááŸá¬ áá»á¯á¶á·ááá¯á· á¡áááºááŒáá¯ážá á¬ážáááºá
- ááá» ááááááºááŸá¯ááᯠááœáá·áºááŒá¯áá±á¬áºáááºáž áá®ážááŒá¬ážááá¯ááŸá±á¬ááºááŸá¯ áááŒá¯áá«á (ááááºáá±á¬á·á áá®ážááŒá¬ážááá¯ááŸá±á¬ááºááŸá¯ááᯠááá¯áá±á¬áºáá¶áá»á¬ážá¡ááœáẠáááºáááºáá¯ááºáá±á¬ááºáá±áááºááŒá áºáá±á¬áºáááºážá áá±á¬ááºáá¯á¶ážá¡á¬ážááá¯ážáá¬á¡ááŒá áºá á¬áá»ááºááŸá¬áá±á«áºááœáẠá¡á¶áááºááœááºáá»ááŒá áºá¡á±á¬áẠááŒáá¯ážááá¯áá»á¯á¶á·ááẠá¡ááŒá¬ážáááºážáááºážáááŸááá±á¬á¡áá«á
ááááºáá±á¬á· áá«á á á¬áá¬ážá¡ááœáẠááá¯á¡ááºáᬠá¡ááá¡áá»áá«áá²á áááºááá¯ááºááá»áŸááááŒá®áž áá¯á¶ážááááá¯ááºáá®áá«á TOAST ááœááºááá·áºáá«á. áááºážááᯠcommand áá áºáá¯áááºážááŒáá·áº ááá¯ááºááá¯ááºáá¯ááºáá±á¬ááºááá¯ááºáááº-
ALTER TABLE rawdata_orig ALTER COLUMN data SET STORAGE MAIN;
á¡áá»áá¯ážáááºáá±á¬ááºááŸá¯ááᯠáááºááá¯áá¯á¶ážáááºááá²á
áá±áá¬á á®ážáááºážááŸá¯ááẠáá±á·ááá¯ááºážááŒá±á¬ááºážáá²áá±áá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠáááááá¶áá«ááºáá»á¬ážááᯠááŸáá¯ááºážááŸááºááááá±á¬áºáááºáž ááŸáá¯ááºážááŸá¥áºááá±á¬áá°áá«áááºá áá±ážáááºáá±á¬áá»áŸáá±ááŸá¯ áá«ááá¯á· á¡á²áá«ááᯠTOAST ááŸá¬ áá±ážáá²á·ááẠ- á¡áá»á¬ážááŒá®áž ááá¯áá±á¬ááºážáááºá ááá¯á·áá±á¬áº á€áá±áá¬ááœáẠá¡áá¹ááá¬ááºáá áºáᯠááŸáááẠ- áá áºáá¯áá»ááºážá á®á ááŸááºáááºážáá áºáá¯á á®á "áá¯ááºááá¯ááºážááá¯ááºáá¬" ááá¬á ááŒá®ážáá¬ážáá±á áá»áœááºá¯ááºááá¯á·ááẠáá±áá¬á á¬áá»ááºááŸá¬áá»á¬ážááᯠááá¯ááá¯áá¯á¶ážá¡á¯ááºáá¬ážááá±á¬ááŒá±á¬áá·áº á¡ááœáŸááºážááááºáž "ááá¯áá»ááºáá±" ááŒá áºáá¬áááºá
á¡ááá¯ááºáž áááŒá±á¬ááºážáá²áá®:
heap = 37GB (39%)
TOAST = 54GB (57%)
PK = 4GB ( 4%)
á¡ááá¯ááºáž á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááŒá®ážáá±á¬ááº:
heap = 37GB (67%)
TOAST = 16GB (29%)
PK = 2GB ( 4%)
ááááºáá±á¬á· áá»áœááºáá±á¬áºááᯠTOAST ááᯠáááŒá¬áá 2 ááŒáááºáá»áŸá±á¬á·á ááŒá®ážáá±ážáááºááá áºááá¯áá¬áá CPU ááá¯áá« ááŒááºááœáá·áºáá±ážáá±á¬á
áá»áœááºá¯ááºááá¯á·ááẠâá
á¬áááºááŒááºážâ áá
áºááᯠâá
á¬áá±ážááŒááºážâ áá¬ááá¯ááºáá² áá±ážáááºáá¬ááŒá±á¬ááºáž ááŸááºáá¬ážáá¬ážááááºááŒá
áºááŒá®ážá ááá¬ážáá
áºáá¯áá²ááá¯á· ááŸááºáááºážáá
áºáá¯ááá·áºááœááºážááá·áºá¡áá«á áááºážáá¡ááœáŸááºážáá
áºáá¯á
á®ááá
áºáááºááá
áºá
áááºáá
áºááá¯ááºážááá¯áááºáž âáááºááŸá¯â ááẠááá¯á¡ááºáááºá áá°ááá¯á·á¡ááœáẠá¡áá¬ááẠá¡áá±á¡áá¬ážá
PostgreSQL 11 ááœáẠáá±á¬ááºážááœááºá áœá¬áá±ááá¯ááºááá¯ááºáá°
PG11 ááá¯á· á¡ááºááááºáá¯ááºááŒá®ážáá±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠ"áá»áááºááŸáááŒááºáž" TOAST ááᯠáááºáááºáá¯ááºáá±á¬ááºááẠáá¯á¶ážááŒááºáá²á·ááŒá®áž á€áá¬ážááŸááºážá០ááá·áºáááºáá»ááºáá»á¬áž á
áááºáááºááᯠáááááŒá¯áááá«áááºá toast_tuple_target
TOAST_TUPLE_THRESHOLD bytes (áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº 2 KB) áááºááŒá®ážáá±á¬ á¡áááºážáááºááá¯ážááẠTOAST_TUPLE_THRESHOLD bytes áááºááŒá®ážáá±á¬á¡áá«ááŸáᬠTOAST áá¯ááºáá±á¬ááºááŒááºážáá¯ááºááẠáá®ážáá±á¬ááºáá«áááºá TOAST áá¯ááºááẠá¡áááºážáááºááá¯áž TOAST_TUPLE_TARGET bytes ááẠáááºážááœá¬ážáááºá¡áá ááá¬ážááœááºá០á¡ááœááºáááºááá¯ážáá»á¬ážááᯠáá»á¯á¶á·ááŒá®áž/ááá¯á·ááá¯áẠááœáŸá±á·áá±ážááẠ(ááá¯á·) á¡ááœááºá¡á á¬ážááᯠáá»áŸá±á¬á·ááááá«á
áá»áœááºá¯ááºááá¯á·ááŸááá±á·ááŸááá±á¬áá±áá¬ááẠ"á¡ááœááºááá¯áááº" ááá¯á·ááá¯áẠ"á¡ááœááºááŸááºáááº" áá¯áá¯á¶ážááŒááºáá²á·áááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠááŒá áºááá¯ááºááŒá±á¡áááºážáá¯á¶ážáááºááá¯ážááœáẠááááááá¯ááºááá¯ááá·áºáááºááẠáá¯á¶ážááŒááºáá²á·áááº-
ALTER TABLE rawplan_orig SET (toast_tuple_target = 128);
ááŒááºáááºáááºááŸááºááŒá®ážáá±á¬áẠáááºáááºá¡áá áºáá»á¬ážááẠdisk loading ááᯠáááºááá¯á·á¡áá»áá¯ážáááºáá±á¬ááºáááºááᯠááŒáá·áºááŒáá«á áá¯á·á
áááá¯ážáá«áá°áž! áá»ááºážáá»áŸ disk ááá¯á· áááºážá
á®ááŒááºáž áá»á±á¬á·áááºážááœá¬ážáááºá ááá·áºááŸááºážááŒá±á¡á¬ážááŒáá·áº 1.5 ááŒáááºááŒá
áºááŒá®áž disk "á¡áá¯ááºáá»á¬áž" ááẠ20 áá¬ááá¯ááºááŸá¯ááºážááŒá
áºáááºá áá«áá±ááá·áº áá«á CPU ááᯠáá
áºáááºážáááºážáá²á· áááºáá±á¬ááºááŸá¯ááŸáááá¯ááºáá¬ážá
á¡áááºážáá¯á¶ážáá±á¬á· ááá¯ááá¯ážááá¬áá°ážá ááá¯á·áá±ááá·áºá ááá¯áá²á·ááá¯á·áá±á¬ volumes áá»á¬ážáááºáá»áŸáẠáá»ááºážáá»áŸ CPU load ááᯠááá¯ááŒáá·áºá¡á±á¬áẠáááŒáŸáá·áºáááºááá¯ááºáá«á áá¯á¶ážááŒááºááẠáááºáá²áá«áááºá 5%.
áá±á«áá¬ááá»á¬ážá áá±áá¬áá»á¬ážááᯠááŒá±á¬ááºážáá²ááŒááºážááŒáá·áº áá±á«ááºážáááº... ááŒá±á¬ááºážáá²áá«áááºá
áááºááááá·áºá¡ááá¯ááºáž áá áºááŒá¬ážáá áºáá»ááºááẠáá°áááºáá áºááŒá¬ážááᯠáááºáá¬á á±ááŒá®áž áá»áœááºá¯ááºááá¯á·á ááá¯ááŸá±á¬ááºááŸá¯ááá¬áááŸáá·áº áááºáááºáá«áááºá 10TB/á á¡áááºážááẠoptimization áááºááẠáá±á¬ááºážáá±á¬á¡ááŒááºá¡á áœááºážááᯠáá±ážááá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·ááá±áá¬á áá¯ááºááá¯ááºážááá¯ááºáá¬ááœá²á·á ááºážáá¯á¶á¡á¬áž á¡á¬áá¯á¶á áá¯ááºáá²á·ááẠ- áááºáá»áŸáááá»áááºá ááŸááºáááºážá¡ááœááºážá "áááºážá á®áá¬ážáá±á¬" á¡ááœááºáá»á¬áž ááá¬ážáá áºáá¯á á®á
á¡ááŒá±á¬ááºážááá±á¬á·
áááá¯áá¬áá»á¬ážá áœá¬ááẠá ááºá áá¬ážáá¯á¶ážáááºááááááºáá»á¬ážáá±á«áºááœáẠáá±áá¬áá»áááºááŸáááŸá¯ááᯠáá±ážáááºá á¥ááá¬á¡á¬ážááŒáá·áºá 32-bit x86 á áá áºááœááºá ááááºážááŒáá·áºáá»á¬áž (ááááºážááŒáá·áºá¡áá»áá¯ážá¡á á¬ážá 4 bytes) ááẠ4-byte á á¬áá¯á¶ážáá±á¬ááºáá±á«áºááœáẠáá»áááºááŸááááºááŒá áºááŒá®ážá áááá»áá±á¬ floating point áá¶áá«ááºáá»á¬áž (double precision floating point, 8 bytes) ááᯠááŸá áºáááá¯ážáá±ážáááºááŒá áºáááºá 64-bit á áá áºááœááºá ááŸá áºááááºááá¯ážáá»á¬ážááᯠ8-byte á áá¬ážáá¯á¶ážáááºááááááºáá»á¬ážááŸáá·áº áá»áááºááŸááááºááŒá áºáááºá áá«á ááá¯ááºáááºááŸá¯áááŸááá²á· á¡ááŒá±á¬ááºážáááºážáá áºáá¯áá«áá²á
áá»áááºááŸáááŸá¯ááŒá±á¬áá·áºá ááá¬ážá¡áááºážáá¡ááœááºá¡á á¬ážááẠá¡ááœááºáá»á¬ážá á¡á á®á¡á á¥áºáá±á«áºááœáẠáá°áááºáááºá á¡áá»á¬ážá¡á¬ážááŒáá·áº á€á¡áá»áá¯ážáááºáá±á¬ááºááŸá¯ááẠáááá¬áááºááŸá¬ážááŒááºážáááŸááá±á¬áºáááºáž á¡áá»áá¯á·ááá á¹á áá»á¬ážááœáẠáááºážááẠá¡ááœááºá¡á á¬ážáááááá¬áá¬ááá¯ážáá¬ááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠchar(1) ááŸáá·áº ááááºážááŒáá·áºá¡ááœááºáá»á¬ážááᯠáá±á¬ááŸá±á¬áá«áá áá¯á¶ááŸááºá¡á¬ážááŒáá·áº áááºážááá¯á·ááŒá¬ážááœáẠ3 bytes áá¯á¶ážááŸá¯á¶ážááœá¬ážáááºááŒá áºáááºá
Synthetic áá±á¬áºáááºáá»á¬ážááŒáá·áº á ááŒáá«á áá¯á·á
SELECT pg_column_size(ROW(
'0000-0000-0000-0000-0000-0000-0000-0000'::uuid
, 0::smallint
, '2019-01-01'::date
));
-- 48 байÑ
SELECT pg_column_size(ROW(
'2019-01-01'::date
, '0000-0000-0000-0000-0000-0000-0000-0000'::uuid
, 0::smallint
));
-- 46 байÑ
áááááá á¹á ááœáẠá¡ááá¯ááá¯ááºááŸá áºá á¯á¶áááºááá¬ááááºážá ááá¯ážááŸááºážáá«áááº- 2-byte áááºááááááºááœáẠ4-byte áá±ážáááºáá±á¬int ááᯠáá»áááºááŸááá¬ážáááºá áá±á¬ááºá¡ááœááºááŸá±á·ááŸá¬á áá±á¬ááºáá¯á¶ážáá áºáá¯ááŒá áºáá²á·á¡áá«á áááºá¡áá¬á០ááŸáá áá¬áááá¯áá«áá°ážá
áá®á¡áá¯áá®á¡áá á¡á¬ážáá¯á¶ážá¡áááºááŒá±ááŒá®áž áááºáááºáá»á¬ážááᯠáááºááŸá áºáááºáááᯠááŒááºá á®ááá¯ááºáá«áááºá 10-15GB ááŸááá±á¬áá±á·á á¥áºá¡ááá¯ááºážááŒá áºáá±á¬ ááá¬ážáá áºáá¯á á¥ááá¬ááᯠá¡áá¯á¶ážááŒá¯á áááá·áºáá±áá¬áá±á«áºááœáẠá á áºáá±ážááŒáá·áºááŒáá«á áá¯á·á
áááŠážááœá²á·á ááºážáá¯á¶-
CREATE TABLE public.plan_20190220
(
-- УМаÑлеЎПваМа from table plan: pack uuid NOT NULL,
-- УМаÑлеЎПваМа from table plan: recno smallint NOT NULL,
-- УМаÑлеЎПваМа from table plan: host uuid,
-- УМаÑлеЎПваМа from table plan: ts timestamp with time zone,
-- УМаÑлеЎПваМа from table plan: exectime numeric(32,3),
-- УМаÑлеЎПваМа from table plan: duration numeric(32,3),
-- УМаÑлеЎПваМа from table plan: bufint bigint,
-- УМаÑлеЎПваМа from table plan: bufmem bigint,
-- УМаÑлеЎПваМа from table plan: bufdsk bigint,
-- УМаÑлеЎПваМа from table plan: apn uuid,
-- УМаÑлеЎПваМа from table plan: ptr uuid,
-- УМаÑлеЎПваМа from table plan: dt date,
CONSTRAINT plan_20190220_pkey PRIMARY KEY (pack, recno),
CONSTRAINT chck_ptr CHECK (ptr IS NOT NULL),
CONSTRAINT plan_20190220_dt_check CHECK (dt = '2019-02-20'::date)
)
INHERITS (public.plan)
áá±á¬áºáá¶á¡ááŸá¬á á¬ááŒá±á¬ááºážááŒá®ážáá±á¬áẠá¡ááá¯ááºáž - á¡ááá¡áá» áá°áá®áá±á¬áááºáááºá á¡á á®á¡á á¥áºááá°áá«á:
CREATE TABLE public.plan_20190221
(
-- УМаÑлеЎПваМа from table plan: dt date NOT NULL,
-- УМаÑлеЎПваМа from table plan: ts timestamp with time zone,
-- УМаÑлеЎПваМа from table plan: pack uuid NOT NULL,
-- УМаÑлеЎПваМа from table plan: recno smallint NOT NULL,
-- УМаÑлеЎПваМа from table plan: host uuid,
-- УМаÑлеЎПваМа from table plan: apn uuid,
-- УМаÑлеЎПваМа from table plan: ptr uuid,
-- УМаÑлеЎПваМа from table plan: bufint bigint,
-- УМаÑлеЎПваМа from table plan: bufmem bigint,
-- УМаÑлеЎПваМа from table plan: bufdsk bigint,
-- УМаÑлеЎПваМа from table plan: exectime numeric(32,3),
-- УМаÑлеЎПваМа from table plan: duration numeric(32,3),
CONSTRAINT plan_20190221_pkey PRIMARY KEY (pack, recno),
CONSTRAINT chck_ptr CHECK (ptr IS NOT NULL),
CONSTRAINT plan_20190221_dt_check CHECK (dt = '2019-02-21'::date)
)
INHERITS (public.plan)
á¡ááá¯ááºážá á
á¯á
á¯áá±á«ááºážáá¯áááºááᯠ"á¡áá»ááºá¡áááº" á¡áá±á¡ááœááºááŒáá·áº áá¯á¶ážááŒááºááŒá®áž ááŒááºááá¯ááºáááºážá
ááºáá»á¬ážáá±á«áºááœááºáᬠáá°áááºáá«áááºá ááá¯á·ááŒá±á¬áá·áº á¡á
á¯áá¡ááœááºá¡á
á¬ážááᯠááœá²ááŒáá·áºááŒáá«á
áá¯á·ápg_relation_size
áááºážááœááºááŸááá±á¬ ááŸááºáááºážá¡áá±á¡ááœááºá¡á¬ážááŒáá·áº ) ááá¯ááá¯áááºááŸá¬ áá»áœááºá¯ááºááá¯á·áááŸááááºá á¡ááŸááºáááẠááááºážáááºážáá¬ážáá±á¬ ááŸááºáááºážá áá»ááºážáá»áŸá¡ááœááºá¡á
á¬áž:
á¡ááŸá¯áẠ6% á¡áá¶á¡ááá¯ážá¡áá»ááºááá¯ááºáááº!
áá«áá±ááá·áº á¡áá¬áá¬ááá¯ááºážáᬠááŸááºážáá®áááºážáááŸáá«áá°ážá á¡ááœáŸááºážáá»á¬ážááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡ááœááºáá»á¬ážá á¡á
á®á¡á
á¥áºááᯠááŒá±á¬ááºážáá²ááááá«áááá¯á·ááŒá±á¬áá·áº "áá±áá¯áá»á¡á¬ážááŒáá·áº" (pg_total_relation_size
) ...
...áá®ááŸá¬áááºáž ááŸááá±áá¯ááºážáá²á 1.5% áááºáá¬áááºáá¯ááºáá
áºááŒá±á¬ááºážáááºážááᯠáááŒá±á¬ááºážáá²á áá¯ááºáá²á·áá¯ááºáá²á·!
á¡ááœááºáá»á¬ážá
á®á
ááºááŒááºážá¡ááœáẠá¡áááºáá±á¬áºááŒáá«ááœá±ážáá»ááºááŸá¯ááẠá¡ááá·áºáá»á±á¬áºáá¯á¶ážááŒá
áºáááºáá°áá±á¬á¡áá»ááºááá¯ááºááŒá±á¬ááºáž áá»áœááºá¯ááºáááááŒá¯áááá«áááºá á¡ááŸá¡áááá¯ááºáᬠá¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážááŒáá·áº áááºáááºá¡áá»áá¯á·ááᯠâáááá¯ááºâ áá»ááºáá±á¬ááŒá±á¬áá·áº - á¥ááᬠá
á¯á¶ááœá²áá
áºááœá²á (pack, recno)
á€ááá¬ážá¡ááœáẠPK ááŒá
áºááẠá
áá±áá¯áá»á¡á¬ážááŒáá·áºá áááºáááºáá»á¬ážá "á¡áááºážáá¯á¶áž" á¡á
á®á¡á
ááºááᯠáá¯á¶ážááŒááºááŒááºážááẠáá»áŸáá»áŸááááá¯ážááŸááºážáá±á¬ "ááá¯ááºážá
áá¯ááºážáá±á¬á
áœááºážá¡á¬áž" á¡áá¯ááºááŒá
áºáááºá ááá¯á·ááŒá±á¬áá·áºá áááºááẠáá»áœááºá¯ááºááá¯á·ááá±áá¬ááẠááá¯áá±á¬ááºážáá±á¬ááááºáá»á¬ážááᯠáááá¯ááºááẠ- á
ááºážáá¯á¶ážááŒáá·áºáá«á
source: www.habr.com