komprimace tabulek v PostgreSQL?
|
5.2.2007 11:26
tomas novosad
|
Dobry den,
lze v PostgreSQL komprimovat tabulky, podobne jako myisampack v MySQL?
Je na to nejaky prikaz/program?
Dekuji a preji pekny den |
|
|
Re: komprimace tabulek v PostgreSQL?
|
6.2.2007 09:24
Pavel Stěhule
|
Zdravím,
nic takového v PostgreSQL není. PostgreSQL totiž nepodporuje read-only tabulky. Pokud máte problémy s velikostí zkuste VACUUM FULL. Jinak PostgreSQL automaticky komprimuje všechny textové položky delší než 2KB (viz TOAST).
Pavel |
|
|
Re: komprimace tabulek v PostgreSQL?
|
6.2.2007 10:57
tomas novosad
|
Dekuji za odpoved a nasmerovani,
otestuju co "dokaze" FACUUM FULL.
Podivam se i na VACUUM FREEZE.
Jinak komprimace textovych polozek vetsich nez 2KB u me nema vyznam, zadne takove polozky v databazi nemam.
Jeste mozna jeden dotaz: lze nejak udelat neco jako UNION na dvou (pripadne vice tabulkach), ktere maji 5 sloupcu stejnych a dalsi sloupce jine?
Myslim tim jiny pocet sloupcu a jine datove typy.
Neco jako, ze by se udelal 1 dotaz na vsechny slupce ze vsech tabulek a ve vystupu by sloupce, ktere ve vlastni tabulce nejsou, mely hodnotu NULL.
Dekuju za radu a preju pekny den |
|
|
Re: komprimace tabulek v PostgreSQL?
|
6.2.2007 11:13
MaReK Olšavský
|
Pokud se Vám ty sloupce jmenují stejně a ty nestejné mají jiné názvy je to NATURAL JOIN. Je to i někde v seriálu. Jinak je lze vyjmenovat, což je pro mě mnohem přehlednější a čistější. |
|
|
Re: komprimace tabulek v PostgreSQL?
|
6.2.2007 14:15
tomas novosad
|
Dekuju Vam za radu,
ale JOIN nebude presne to co potrebuju.
Zkusim to formulovat presneji.
Mejme hlavni tabulku
create table main (den date, odesilatel int);
A dve tabluky z ni odvozene
create table prijate (popis varchar(10)) inherits (main);
create table vydane (misto int) inherits (main);
insert into prijate (den,odesilatel,popis) values (2-2-2007,1,"prvni");
insert into prijate (den,odesilatel,popis) values (2-2-2007,1,"druhy");
insert into vydane (den,odesilatel,misto) values (2-2-2007,1,5530);
insert into vydane (den,odesilatel,misto) values (2-2-2007,1,5560);
ja bych potreboval dotaz jehoz vysledkem by bylo neco takoveho
SELECT ..... where den=2-2-2007 and odesilatel=1
>
den,odesilatel, popis, misto
2-2-2007,1, prvni NULL
2-2-2007,1, NULL 5530
2-2-2007,1, NULL 5560
2-2-2007,1, druhy NULL
V klauzuli WHERE budou jen slupce ktere se vyskytuji v tabulce "main".
Podobne jako UNION ale bohuzel nesplnuju podminku stejnych sloupcu,proste to nejde.
Dekuji za jakoukoli radu, pripadne za ujisteni, ze to co chci neni mozne.
Preju pekny zasnezeny den
|
|
|
Re: komprimace tabulek v PostgreSQL?
|
8.2.2007 07:52
Pavel Stěhule
|
Na VACUUM FREEZE se urcite podivejte, nicmene tento prikaz slouzi uplne k necemu jinemu a nema vliv ani na velikost db tak ani na rychlost.
Muzete udelat klasicky union
SELECT * FROM tab1
UNION ALL
SELECT *, NULL, NULL, FROM tab2
proste potrebne NULL doplnite rucne |
|
|
Re: komprimace tabulek v PostgreSQL?
|
8.2.2007 09:25
tomas novosad
|
VACUUM FREEZE skutecne neni presne to co bych potreboval.
Nicmene dekuji za radu a ten trik s NULL sloupci. Moc se mi to libi;-)
Dekuji
|
|
|
Re: komprimace tabulek v PostgreSQL?
|
8.2.2007 18:30
Pavel Stěhule
|
Nejedna se o zadny trik, ale o zaklady SQL. Doporucoval bych vam se poohlednout po dobre ucebnici SQL ;-)
Pavel |
|
|
Re: komprimace tabulek v PostgreSQL?
|
8.2.2007 12:57
Grumpa
|
SELECT den,odesilatel,popis,NULL AS misto
FROM prijate
UNION SELECT den,odesilatel, NULL AS popis, misto
FROM vydane;
|
|
|
|
|
KOMENTARZE
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|