Re: hstore binary representation of keys - Mailing list pgsql-general

From Dorian Hoxha
Subject Re: hstore binary representation of keys
Date
Msg-id CANsFX07i899x1JcUCsPjec8SC-S4Yi4uLrK3yevh9Ec2x1QqDA@mail.gmail.com
Whole thread Raw
In response to hstore binary representation of keys  (Tim Kane <tim.kane@gmail.com>)
List pgsql-general
Currently hstore is mongodb. It writes the keys everytime (and values as strings!, its mostly for dynamic keys or very sparse keys in  my opinion). 
You can shorten keys,or put them in dedicated columns.
I haven't read that there is a plan to compress the strings.


On Tue, Apr 22, 2014 at 2:01 PM, Tim Kane <tim.kane@gmail.com> wrote:
Hi all,

I’ve been using hstore to record various key/val pairs, but I’ve noticed it consumes a lot more disk than I would have expected.
I don’t have any hard figures to illustrate, but empirical testing has shown that if I record these pairs as traditional column based fields, I can save a significant amount of disk.

What I think I’m seeing here, is that the hstore representation needs to store the entirety of the key alongside each value.

Let’s say I have a table of 1000 records, and 900 of them have a key named ‘A_REALLY_REALLY_REALLY_LONG_KEY’, then this key will be written do disk 900 times, along with the appropriate values.


I guess there are two options open to me here.

  1. I could transpose these values into a dedicated field
  2. I could use shorter key names

Does hstore2 go any way to improving this situation? Some kind of enumerated key based system?



Cheers,

TIm


pgsql-general by date:

Previous
From: Albe Laurenz
Date:
Subject: Re: How to ignore blank lines with file_fdw
Next
From: Ian Barwick
Date:
Subject: Re: Fwd: How to ignore blank lines with file_fdw