From: | John Naylor <jcnaylor(at)gmail(dot)com> |
---|---|
To: | David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: PostgreSQL Limits and lack of documentation about them. |
Date: | 2018-10-31 15:40:39 |
Message-ID: | CAJVSVGXGhbjDqodxr+WvycO57tZPwMHk2kZTZpoEKzn6BkzSNA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 10/30/18, David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> wrote:
> On 26 October 2018 at 11:40, Haribabu Kommi <kommi(dot)haribabu(at)gmail(dot)com>
> wrote:
>> On Fri, Oct 26, 2018 at 9:30 AM David Rowley
>> <david(dot)rowley(at)2ndquadrant(dot)com>
>> wrote:
>>>
>>> For a long time, we documented our table size, max columns, max column
>>> width limits, etc. in https://www.postgresql.org/about/ , but that
>>> information seems to have now been removed. The last version I can
>>> find with the information present is back in April this year. Here's a
>>> link to what we had:
>>>
>>> https://web.archive.org/web/20180413232613/https://www.postgresql.org/about/
>>>
>>> I think it's a bit strange that we don't have this information fairly
>>> early on in the official documentation. I only see a mention of the
>>> 1600 column limit in the create table docs. Nothing central and don't
>>> see mention of 32 TB table size limit.
>>>
>>> I don't have a patch, but I propose we include this information in the
>>> docs, perhaps on a new page in the preface part of the documents.
>>
>>
>> I also try to find such limits of PostgreSQL, but I couldn't find it.
>> +1 to add them to docs.
>
> I've attached a very rough patch which adds a new appendix section
> named "Database Limitations". I've included what was mentioned in [1]
> plus I've added a few other things that I thought should be mentioned.
> I'm sure there will be many more ideas.
David,
Thanks for doing this. I haven't looked at the rendered output yet,
but I have some comments on the content.
+ <entry>Maximum Relation Size</entry>
+ <entry>32 TB</entry>
+ <entry>Limited by 2^32 pages per relation</entry>
I prefer "limited to" or "limited by the max number of pages per
relation, ...". I think pedantically it's 2^32 - 1, since that value
is used for InvalidBlockNumber. More importantly, that seems to be for
8kB pages. I imagine this would go up with a larger page size. Page
size might also be worth mentioning separately. Also max number of
relation file segments, if any.
+ <entry>Maximum Columns per Table</entry>
+ <entry>250 - 1600</entry>
+ <entry>Depending on column types. (More details here)</entry>
Would this also depend on page size? Also, I'd put this entry before this one:
+ <entry>Maximum Row Size</entry>
+ <entry>1600 GB</entry>
+ <entry>Assuming 1600 columns, each 1 GB in size</entry>
A toast pointer is 18 bytes, according to the docs, so I would guess
the number of toasted columns would actually be much less? I'll test
this on my machine sometime (not 1600GB, but the max number of toasted
columns per tuple).
+ <entry>Maximum Identifier Length</entry>
+ <entry>63 characters</entry>
+ <entry></entry>
Can this be increased with recompiling, if not conveniently?
+ <entry>Maximum Indexed Columns</entry>
+ <entry>32</entry>
+ <entry>Can be increased by recompiling
<productname>PostgreSQL</productname></entry>
How about the max number of included columns in a covering index?
> I'm not so sure about detailing limits of GUCs since the limits of
> those are mentioned in pg_settings.
Maybe we could just have a link to that section in the docs.
--
-John Naylor
From | Date | Subject | |
---|---|---|---|
Next Message | Sanyo Moura | 2018-10-31 16:04:47 | Re: FDW Parallel Append |
Previous Message | Andres Freund | 2018-10-31 15:22:49 | Re: WIP Patch: Add a function that returns binary JSONB as a bytea |