PostgreSQL alebo MySQL (prosim ziaden flame)
Karel Zak
zakkr na zf.jcu.cz
Středa Listopad 14 10:53:02 CET 2001
On Wed, Nov 14, 2001 at 09:46:53AM +0100, Ing. Pavel PaJaSoft Janousek wrote:
> Milan Roubal wrote:
> > > + TOAST
> > Muzu pozadat o vysvetleni co to je a k cemu je to dobre?
>
> technologie pomoci ktere je databazova tabulka obecne rozdelena mezi
> nekonecne (zrejme konecne, ale cislo je nezajimave pro limit) mnoho
> souboru (proto i 1 bunka muze byt v radove TB (mozna vice?)). Pokud k
Ono to neni uplne o deleni na soubory, ale asi takto:
- *kazda* databaze ma nejaky limit na velikost bufferu s kterym
pracuje pri cteni/ukladani/atd dat, PostgreSQL je to 8-32 KB.
- jde o to co udelat s radkami (tuples) v tabulce, ktere jsou vetsi
nez tento limit. TOAST to resi tak, ze vytvori k vasi tabulce dalsi
interni tabulku a radky vetsi nez velikost bufferu rozdeli na mensi
casti a vlozi do te zvlastni tabulky. Pokud pak je treba pracovat s
daty tak se zase zpetne tyto radky poskladaji do puvodni podoby.
- jeste s tim souvisi to, ze jsou data pred ulozenim za chodu
komprimovana (to se tyka nejen tech velkych dat).
- TOAST je reseni jak se PostgreSQL zbavil nutnosti pouzivat sverazne
Large Object interface (ktere v ruznych jinych obdobach ma vetsina
ostatnich DB).
Co se tyka rozdelovani (chunkovani:-) tabulek do mensich souboru, tak
to je proto, aby se predeslo limitum daneho filesystemu a myslim, ze
to bylo implementovano jiz pred TOASTem a netyka se ho to (je to
zalezitost storage manageru). Limity zde nejsou uz ani u sortovani
a u docasnych tabulek, ktere taktez pouzivaji vyse uvedene veci.
Pochopitelne, ze za to uzivatel zaplati urcitou dan v podobe
rychlosti -- podobne jako u mnoha jinych feature ktere v PostgreSQL
jsou (narozdil od temer "staticke" MySQL).
Co se tyka MySQL a rychlosti jiz drive jsem nekde videl testy, ktere
ukazovali na problem se zamykanim u MySQL. Pri vetsim mnozstvi
konkurujicich si pozadavku ta krivka zpomaleni odpovedi mela stoupajici
tendenci zatimco u DB, ktere maji implementovane zamykani na urovni
radku, transakce a MVCC (Multi-Version Concurrency Control) tak
je to vetsinou pometne vyrovnane. Takze za urcitych podminek muze byt
MySQL pomalejsi nez PostgreSQL :-)
Myslim, ze MySQL je dobra vec pokud je uzivatel schopen posudit co a
kde potrebuje. A urcite uspesne vykryva jednu oblast -- z tohodle
hlediska moc nechapu smer jejiho soucasneho vyvoje (ale to uz tu
bylo). Pokud nepotrebujete RI, transakce (opravdove:-), solidni SQL
apod. tak to muze byt dobra volba.
> doplnuji posledni (nejslozitejsi varinaty) JOINu a mame komplexni
> moznosti, co chybi dale?
Pochopitelne mnoho veci :-)
- dukladnejsi system prav
- tablespace
- schema
- database link
- replikace
- jeste lepsi storage manager
- cache
- urychleni startu backendu (poz. MySQL ma jeden z nejrychlejsich
connectu coz je treba u prumernych zpusoby implementaci webu
skvela vec)
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 Databases