[LUGOS-PROG] MySQL vs. Postgresql
Anze
anze at volja.net
Sun Nov 9 12:34:51 CET 2003
Zivjo!
> > Ce se zelis omejiti na eno samo bazo, izvoli - in ja, uporabljaj foreign
> > key-e, transakcije, vse lepe stvari, ki ste se jih ucili pri osnovah
> > relacijskih baz.
>
> Se opravičujem, če se narobe razumel, ampak tole si napisal, kot da so
> zgoraj naštete funkcije tam samo za to, da lahko na faksu sestavijo
> kompleten izpit; če že niso popolna neumnost.
> Upam, da nisi eden izmed tistih, ki mislijo, da so enostavne SELECT,
> INSERT, UPDATE in DELETE vse funkcije, ki bi jih kdorkoli, kjerkoli,
> kadarkoli lahko potreboval.
Ne, sploh ne. Je pa za veliko aplikacij to popolnoma dovolj - in v tem
primeru moras resno premisliti, ali se splaca zrtvovati prenosljivost za
preostale funkcije. Se posebej v primeru web aplikacij in gostovanja pri
ISPjih.
> > Ampak ko bos selil aplikacijo na drugo bazo, bos naJ... (in
> > to z velikim J) Ampak ti ocitno teh izkusenj se nimas. Blagor enim.
>
> Zakaj bi moral pri selitvi aplikacije naj****? Težave pri portanju med
> bazami so skoraj vedno posledica slabega načrtovanja aplikacije, ne pa
> posebnosti baz.
Odvisno - ce razvijas na PostgreSQLu in npr. uporabljas subquerije, bos
moral spreminjati querije, ce gres na MySQL. Ce uporabljas stored procedures,
jih bos moral v vecini primerov napisati na novo.
> Ko se pojavi potreba po podpiranju nove platforme, se prevede samo ta del.
> Tako je npr. shranjevanje zapisa vedno shraniZapis(data), "osrčju"
> aplikacije pa se niti slučajno ne sanja, kaj se dejansko zgodi - ali se
> podatki zapišejo v MySQL, PostgreSQL, tekstovno datoteko, ali /dev/null.
Se strinjam, to rabis v vsakem primeru. Razlika je samo v tem, da pri mojem
nacinu dela "shraniZapis" lahko napisem samo enkrat za VSE sql baze - to si
lahko privoscim, ker mi presek SQL-ov na vseh bazah nudi dovolj za normalno
delo. Ce bom kdaj sel na flat-file, bom pac moral napisati layer na novo, pri
seljenju med bazami pa potrebe po tem ni. In glede na to, da hitrost dela z
bazami minimalno vpliva na hitrost aplikacije (veliko vecino izpisov
cache-iram in s tem do baze sploh ne dostopam), si razliko v hitrosti
dostopanja do baz lahko privoscim (govorim o razliki v hitrosti kot posledici
dejstva, da SQL querijev ne optimiziram za posamezno bazo).
Ce potrebujes stvari, ki so nekompatibilne med bazami, jih seveda uporabis.
Ce jih ne potrebujes nujno, velja premisliti, ali prednosti odtehtajo vec
dela. Dobro nacrtovana aplikacija in dobra dokumentacija sicer pomagata pri
prenosu na novo bazo, ampak se vedno to pomeni vec dela, kot ce bi imel dobro
napisano aplikacijo in dokumentacijo s "prenosljivim" SQLom.
Sicer je pa to ze malo abstraktna razprava... ;)
LP!
Anze
More information about the lugos-prog
mailing list