Как 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. таким образом озвученное мнение это миф.
- Log in to post comments