From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Cc: | rupendra(dot)chulyadyo(at)gmail(dot)com |
Subject: | Re: Performance of Bit String |
Date: | 2010-06-09 16:59:37 |
Message-ID: | 201006091859.38189.andres@anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
Youre on the wrong list for this. This is not a -hackers (i.e. developer
targeted) but a -general (user targeted) question.
On Wednesday 09 June 2010 15:11:41 rupendra(dot)chulyadyo(at)gmail(dot)com wrote:
> I tried to store a BitString of length 2 million in a Postgres table (see
> code below), but it did not complete even in 3 mins and then I cancelled
> it. Surprisingly, it only took few seconds when BitString was of length
> 500K. Is there any restriction of length of BitString or am I missing
> something here?
I think youre missing that your algorithm for assembling the string has
quadratic complexity.
For each loop iteratoring the whole string will be newly allocated and then
copied over.
A faster way to create such a long string might be:
SELECT array_to_string(array_agg(1),'')::bit(2000000) FROM generate_series(1,
2000000);
Btw, your table definition has only the length bit(200k), but youre inserting
bit(2000k)...
What are you trying to achieve with such a long bitstring? Actually I cannot
think of any database design where I would consider that a valid design-
choice.
Andres
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2010-06-09 17:04:54 | Re: hstore ==> and deprecate => |
Previous Message | Robert Haas | 2010-06-09 16:58:48 | Re: Invalid YAML output from EXPLAIN |