Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Есть ли методы сжатия данных в базе. / 7 сообщений из 7, страница 1 из 1
15.07.2008, 10:44
    #35430378
Badger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли методы сжатия данных в базе.
Добрый день.
Решили использовать PostgreSQL 8.3 в качестве хранилища данных. Но столкнулись с проблемой дискового пространства. Одна стока текстовых полей это всреднем 7Kb данных (120 полей) умножив на 1.1 миллион записей получили не 7.7Gb а 47 Gb дискового пространства, которое занимает наша база на PostgreSQL. Дополнительных индексов кроме ключевых полей не делали.

Вопрос: Есть ли методы сжатия данных в базе? И нормально ли это?

Схема базы:
...
Рейтинг: 0 / 0
15.07.2008, 13:15
    #35431000
Author the new one
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли методы сжатия данных в базе.
BadgerДобрый день.
Решили использовать PostgreSQL 8.3 в качестве хранилища данных. Но столкнулись с проблемой дискового пространства. Одна стока текстовых полей это всреднем 7Kb данных (120 полей) умножив на 1.1 миллион записей получили не 7.7Gb а 47 Gb дискового пространства, которое занимает наша база на PostgreSQL. Дополнительных индексов кроме ключевых полей не делали.

Вопрос: Есть ли методы сжатия данных в базе? И нормально ли это?


Читайте документацию:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
The TOAST code is triggered only when a row value to be stored in a table is wider than TOAST_TUPLE_THRESHOLD bytes (normally 2 kB). The TOAST code will compress and/or move field values out-of-line until the row value is shorter than TOAST_TUPLE_TARGET bytes (also normally 2 kB) or no more gains can be had. During an UPDATE operation, values of unchanged fields are normally preserved as-is; so an UPDATE of a row with out-of-line values incurs no TOAST costs if none of the out-of-line values change.

The TOAST code recognizes four different strategies for storing TOAST-able columns: 

PLAIN prevents either compression or out-of-line storage; furthermore it disables use of single-byte headers for varlena types. This is the only possible strategy for columns of non-TOAST-able data types. 

EXTENDED allows both compression and out-of-line storage. This is the default for most TOAST-able data types. Compression will be attempted first, then out-of-line storage if the row is still too big. 

EXTERNAL allows out-of-line storage but not compression. Use of EXTERNAL will make substring operations on wide text and bytea columns faster (at the penalty of increased storage space) because these operations are optimized to fetch only the required parts of the out-of-line value when it is not compressed. 

MAIN allows compression but not out-of-line storage. (Actually, out-of-line storage will still be performed for such columns, but only as a last resort when there is no other way to make the row small enough.) 
...
Рейтинг: 0 / 0
15.07.2008, 13:30
    #35431052
Kruchinin Pahan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли методы сжатия данных в базе.
BadgerДобрый день.
Решили использовать PostgreSQL 8.3 в качестве хранилища данных. Но столкнулись с проблемой дискового пространства. Одна стока текстовых полей это всреднем 7Kb данных (120 полей) умножив на 1.1 миллион записей получили не 7.7Gb а 47 Gb дискового пространства, которое занимает наша база на PostgreSQL. Дополнительных индексов кроме ключевых полей не делали.

Вопрос: Есть ли методы сжатия данных в базе? И нормально ли это?


1. VACUUM FULL ANALYZE делали?
2. Может вы ширину записи подсчитываете как-то не так? Например, у вас не используется, случайно, CHAR заместо VARCHAR?
...
Рейтинг: 0 / 0
15.07.2008, 13:47
    #35431104
Badger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли методы сжатия данных в базе.
Author the new oneЧитайте документацию:

Код: plaintext
1.
The TOAST code is trigger......
Это к нам не относится. У нас идет разбор по полям документа, одно поле одна запись в БД.
...
Рейтинг: 0 / 0
15.07.2008, 13:48
    #35431108
Badger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли методы сжатия данных в базе.
Kruchinin Pahan
Например, у вас не используется, случайно, CHAR заместо VARCHAR?
везде используется VARCHAR
...
Рейтинг: 0 / 0
16.07.2008, 04:11
    #35432521
ЯЕХХ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли методы сжатия данных в базе.
Ненормальная ситуация. Даже если добавить с оверхедом на строку и помножить на два никак не получается 47 гигов. Может вакуум фулл не делался, может висящая старая транзакция не дает вакууму работать. Может совсем другие таблицы место занимают. А что выдаст
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select
  pg_relation_size(c.oid) as size,
  ns.nspname,
  (select relname from pg_class where reltoastrelid=c.oid) as parent,
  c.relname, c.relkind, c.relpages, c.reltuples
from pg_class c
  join pg_namespace ns on ns.oid=c.relnamespace
order by size desc
limit  20 
?
...
Рейтинг: 0 / 0
16.07.2008, 10:21
    #35432842
Badger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли методы сжатия данных в базе.
ЯЕХХНенормальная ситуация. Даже если добавить с оверхедом на строку и помножить на два никак не получается 47 гигов. Может вакуум фулл не делался, может висящая старая транзакция не дает вакууму работать. Может совсем другие таблицы место занимают. А что выдаст
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select
  pg_relation_size(c.oid) as size,
  ns.nspname,
  (select relname from pg_class where reltoastrelid=c.oid) as parent,
  c.relname, c.relkind, c.relpages, c.reltuples
from pg_class c
  join pg_namespace ns on ns.oid=c.relnamespace
order by size desc
limit  20 
?Не дождался я Вашего поста, стер вчера базу, хотим по другому ее построить...
Как накачаем данными новую базу, выложу результат запроса и размеры на диске.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Есть ли методы сжатия данных в базе. / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]