|
out-of-row value storage
|
|||
---|---|---|---|
#18+
все привет. я правильно понимаю, что не существует способа зафорсить хранение значений поля вне строки всегда, даже если их размер не превышает TOAST_TUPLE_THRESHOLD/TOAST_TUPLE_TARGET? по аналогии с DISABLE STORAGE IN ROW в оракле для лобов. --------------------------------------- мистер Петя ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2018, 22:22 |
|
out-of-row value storage
|
|||
---|---|---|---|
#18+
bdsm_sql, вы не про это : https://postgrespro.ru/docs/postgresql/10/sql-altertable SET STORAGE Эта форма устанавливает режим хранения столбца. Она определяет, хранятся ли данные внутри таблицы или в отдельной таблице TOAST, а также, сжимаются ли они. Режим PLAIN должен применяться для значений фиксированной длины, таких как integer; это вариант хранения внутри, без сжатия. Режим MAIN применяется для хранения внутри, но сжатых данных, EXTERNAL — для внешнего хранения несжатых данных, а EXTENDED — для внешнего хранения сжатых данных. EXTENDED используется по умолчанию для большинства типов данных, поддерживающих хранилище не PLAIN. Применение EXTERNAL позволяет ускорить операции с подстроками на очень больших значениях text и bytea, за счёт проигрыша в объёме хранилища. Заметьте, что предложение SET STORAGE само по себе не меняет ничего в таблице, оно только задаёт стратегию, которая будет реализована при будущих изменениях в таблице. За дополнительными сведениями обратитесь к Разделу 66.2. или вам надо дополнительные кнуты сыскать ? а стратегии вам недостаточно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2018, 23:09 |
|
out-of-row value storage
|
|||
---|---|---|---|
#18+
про это. так вот, если я правильно понимаю, ни одна из этих 4х стратегий не даёт хранение значений вне строки ВСЕГДА. то есть если threshold 2 килобайта, то 1.5к будет всё равно хранится в строке, а я хочу, чтобы всегда хранился out of row ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2018, 23:16 |
|
out-of-row value storage
|
|||
---|---|---|---|
#18+
bdsm_sql, Можно протестировать, не сложно же. Встречный вопрос — а зачем?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2018, 23:23 |
|
out-of-row value storage
|
|||
---|---|---|---|
#18+
bdsm_sqlпро это. так вот, если я правильно понимаю, ни одна из этих 4х стратегий не даёт хранение значений вне строки ВСЕГДА. то есть если threshold 2 килобайта, то 1.5к будет всё равно хранится в строке, а я хочу, чтобы всегда хранился out of rowа, помню брата колю 18204652 , он тоже хотел. кроме как рисовать отдельную таблу дл лобов -- не вижу способа. а еще пересобрать с другими констанами. пс. вы пролоббируйте ключик "як в оракули" мейби в продажных сборках--ынтырпрайсах уже есть. у того же бартунова в геркулесе. нет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2018, 23:24 |
|
out-of-row value storage
|
|||
---|---|---|---|
#18+
vyegorovbdsm_sql, Можно протестировать, не сложно же. Встречный вопрос — а зачем?.. если основная работа с ядром таблички, и ее ширина сотня байтикоа. то какого хрена мне иметь 2К лишнего говна на рабочей в доску страничке ? и вместо тучи строк/на блок получать 4 жалкие крохотульки. -- из примерно таких соображений. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2018, 23:28 |
|
out-of-row value storage
|
|||
---|---|---|---|
#18+
vyegorovbdsm_sql, Можно протестировать, не сложно же. Встречный вопрос — а зачем?.. звучит, как будто я не тестировал кейс простой - есть поле json с кучей хрени, которая мне нужна далеко не всегда. json довольно большой но часто меньше 2к. при этом я не хочу, чтобы это поле тормозило агрегации по основным полям, равно как и сортировку всей таблицы. проблема решается доп. таблицей с json-полем, но хотелось бы поэлегантней. covering index не вариант, место на диске весьма критично ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2018, 23:32 |
|
out-of-row value storage
|
|||
---|---|---|---|
#18+
просто странно, что external - это не external нифига, а просто отсутствие компрессии, ЕСЛИ значение превышает threshold и идёт в тост. а которые меньше 2к - всё равно пишутся в строку. а чтобы понять смысл main, пришлось лезть в рассылку, ибо по доке это абсолютно то же самое что и extended (в реале main просто уйдёт в тост в последнюю очередь, после всех extended) при этом нет возможности всегда хранить значение в тосте и нет возможности всегда сжимать значение, только если оно превысило threshold (при этом если оно превысило, но после компрессии влезло в 2к, то оно продолжает храниться в строке) короче, странно ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2018, 23:46 |
|
|
start [/forum/topic.php?fid=53&msg=39603576&tid=1995937]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 137ms |
0 / 0 |