Re: Datatypes and performance
От | Maksim Likharev |
---|---|
Тема | Re: Datatypes and performance |
Дата | |
Msg-id | 56510AAEF435D240958D1CE8C6B1770A016D2D8E@mailc03.aurigin.com обсуждение исходный текст |
Ответ на | Datatypes and performance ("Jay O'Connor" <joconnor@cybermesa.com>) |
Ответы |
Re: Datatypes and performance
("Nigel J. Andrews" <nandrews@investsystems.co.uk>)
Re: Datatypes and performance (Alvaro Herrera <alvherre@dcc.uchile.cl>) Re: Datatypes and performance (Andrew Sullivan <andrew@libertyrms.info>) |
Список | pgsql-general |
Ok, what I see here tells me that text is slower then fixed len varchar, due to stored in separate table ( but how else you can store long fields ). so postgres has to read another page(s) in order to get long value. Story about boundary checks for varchar just does not count, just nothing with comparing with disk reads/writes. -----Original Message----- From: Andrew Sullivan [mailto:andrew@libertyrms.info] Sent: Friday, July 04, 2003 1:24 PM To: PostgreSQL List Subject: Re: [GENERAL] Datatypes and performance On Fri, Jul 04, 2003 at 01:14:52PM -0700, Maksim Likharev wrote: > How postgres internally stores text fields, in a separate table? I believe it gets stored in a separate table just in case it's too long (read the docs on TOAST if you want more about this). But normally, no. Here's what the docs have to say about it: ---cut here--- The storage requirement for data of these types is 4 bytes plus the actual string, and in case of character plus the padding. Long strings are compressed by the system automatically, so the physical requirement on disk may be less. Long values are also stored in background tables so they don't interfere with rapid access to the shorter column values. In any case, the longest possible character string that can be stored is about 1 GB. (The maximum value that will be allowed for n in the data type declaration is less than that. It wouldn't be very useful to change this because with multibyte character encodings the number of characters and bytes can be quite different anyway. If you desire to store long strings with no specific upper limit, use text or character varying without a length specifier, rather than making up an arbitrary length limit.) ---cut here--- A -- ---- Andrew Sullivan 204-4141 Yonge Street Liberty RMS Toronto, Ontario Canada <andrew@libertyrms.info> M2P 2A8 +1 416 646 3304 x110 ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
В списке pgsql-general по дате отправления: