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