Re: Reducing the overhead of NUMERIC data

Поиск
Список
Период
Сортировка
От Marcus Engene
Тема Re: Reducing the overhead of NUMERIC data
Дата
Msg-id 436A27BD.3060807@engene.se
обсуждение исходный текст
Ответ на Re: Reducing the overhead of NUMERIC data  (Simon Riggs <simon@2ndquadrant.com>)
Ответы Re: Reducing the overhead of NUMERIC data  ("Jim C. Nasby" <jnasby@pervasive.com>)
Список pgsql-hackers
Simon Riggs wrote:
> On Thu, 2005-11-03 at 11:13 -0300, Alvaro Herrera wrote:
> 
>>Simon Riggs wrote:
>>
>>>On PostgreSQL, CHAR(12) is a bpchar datatype with all instantiations of
>>>that datatype having a 4 byte varlena header. In this example, all of
>>>those instantiations having the varlena header set to 12, so essentially
>>>wasting the 4 byte header.
>>
>>We need the length word because the actual size in bytes is variable,
>>due to multibyte encoding considerations.
> 
> 
> Succinctly put, thanks.
> 
> Incidentally, you remind me that other databases do *not* vary the
> character length, even if they do have varying length UTF-8 within them.
> So if you define CHAR(255) then it could blow up at a random length if
> you store UTF-8 within it.
> 
> That's behaviour that I could never sanction, so I'll leave this now.
> 
> Best Regards, Simon Riggs
> 

Just as a side note, in Oracle you can use the syntax (f.ex on on a db 
with utf-8 charset):

column VARCHAR2(10 CHAR)

...to indicate that Oracle should fit 10 characters there. It might use 
up to 40 bytes in the db, but that's up to Oracle. If I s/10 CHAR/10, at 
most 10 characters will fit.

This works very well. The only catch is that it's not good to use more 
than 1000 chars since oracle's varchars dont want to go past 4000 bytes.

Best regards,
Marcus



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Stephan Szabo
Дата:
Сообщение: Re: Reducing the overhead of NUMERIC data
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: Reducing the overhead of NUMERIC data