Как Postgresql хранит ltree

Будем искать не точный ответ на вопрос, но проверим существующее мнение, что postgresql хранит ltree в виде словаря.

Это значит - если значения повторяются, то это приводит к экономии места. Можно было бы покапаться в коде, но проверим простым опытом

CREATE TABLE t1(c1 text );
INSERT INTO t1 (c1) SELECT 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb' FROM generate_series(1,1000) ;


CREATE TABLE t2(c1 ltree );
INSERT INTO t2 (c1) SELECT 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb' FROM generate_series(1,1000) ;

в результате t1 - 270KB, t2 - 280KB. таким образом озвученное мнение это миф.

Яндекс.Метрика