MergeTree表的三種格式
MergeTree表引擎有三種格式:Compact圆丹、Wide和In-memory居凶,前兩個(gè)為主要格式虫给。具體區(qū)別是:
- Compact - 所有的列的數(shù)據(jù)放在一個(gè)文件;
- Wide - 每個(gè)列的數(shù)據(jù)放在一個(gè)文件侠碧;
- In-memory - 數(shù)據(jù)存在內(nèi)存中抹估,不在磁盤上。當(dāng)數(shù)據(jù)量(行數(shù)和總共所占字節(jié)數(shù))都很小的情況下采用弄兜。
min_bytes_for_compact_part
和 min_rows_for_compact_part
控制MergeTree表是否采用in-memory模式還是compact格式药蜻。
min_bytes_for_wide_part
和 min_rows_for_wide_part
控制MergeTree表是否采用wide格式還是compact格式。
兩對設(shè)置項(xiàng)的關(guān)系是:
0 <= min_bytes_for_compact_part <= min_bytes_for_wide_part
0 <= min_rows_for_compact_part<= min_rows_for_wide_part
這里用代碼解釋一下格式選擇邏輯:
image.png
設(shè)置 min_bytes_for_compact_part
, min_rows_for_compact_part
, min_bytes_for_wide_part
, min_rows_for_wide_part
均為0替饿,就可以強(qiáng)制所有的MergeTree表都采用wide格式语泽。