Vertikalni deleni tabulek

Karel Zak zakkr na zf.jcu.cz
Čtvrtek Říjen 31 08:45:59 CET 2002


On Wed, Oct 30, 2002 at 04:56:56PM +0100, Honza Pazdziora wrote:
> On Wed, Oct 30, 2002 at 10:44:27AM +0100, Martin Majkus wrote:
> > 
> > zajímá mě, jestli má cenu vertikálně dělit tabulky, pokud obsahují velká 
> > pole variabilní délky. Například, jestli je lepší následující tabulku 
> > rozdělit na 2 tabulky a spojit je 1:1 vazbou přes id (tedy ve druhé 

 IMHO s hledista modelovani DB to neni idealni pokud plati, ze ty data
 k sobe patri a jsou dokonce ve vztahu 1:1. Ovsem praxe muze byt jina
 :-)

> > tabulce by byly pouze poslední dva sloupce + id).
> > 
> > CREATE TABLE clanky (
> > 	id	INTEGER	NOT NULL PRIMARY KEY,
> > 	datum	DATE,
> > 	konec	DATE,
> > 	...
> > 	abstrakt 	TEXT,
> > 	abstrakt_idx	TXT_IDX);
> > 
> > Zlepší se potom rychlost vyhledávání ve sloupcích datum a podobně?
> 
> Snažil jsem se najít v dokumentaci PostgreSQL a na webu, jak je
> uložen atribut typu TEXT a co je to TXT_IDX, ale neuspěl jsem.

 Obecne vsechny datove typy v PostgreSQL pokud jejich pouzity v radce
 tabulky presahne velikost stranky kterou server pouziva k ukladani na
 disk (8KB defaultne) jsou prohnany systemem TOAST a jsou rozlozeny do
 vice internich tabulek na segmenty o velikosti stranky. Plati to jak
 pro varchar() tak pro TEXT (ale i numeric apod.). Zaroven je na ty
 data pouzita komprese takze rict presne velikost od kdy dojde k
 "natoustovani" nelze.

 Co je to TXT_IDX nevim.
 
> Nicméně je třeba zvážit nejen to, že jsou tam dva sloupce s nějakými
> atributy, ale i to, jakým způsobem jsou údaje v té tabulce používány,

 Ano, todle je podle mne dulezite.

 Pokud je to pouzivano dohromady tak bych to urcite nedelil, ostatne
 nejlepsi bude to vyzkouset. Mozna take na zaklade toho jak vypada
 typicky select udelat nejake indexy (treba na ty datumy), aby se s
 tou tabulkou moc nepracovalo.

    Karel

-- 
 Karel Zak  <zakkr na zf.jcu.cz>
 http://home.zf.jcu.cz/~zakkr/
 
 C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz


Další informace o konferenci Test