[LUGOS-PROG] MySQL vs. Postgresql

"Branko F. Gračnar" bfg at noviforum.si
Thu Nov 6 21:15:58 CET 2003


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Anze wrote:
| Velikih razlik po mojih izkusnjah ni
Očitno nimaš izkušenj.

|- jaz uporabljam MySQL preprosto zato,
| ker vec ljudi uporablja to bazo kot pa PostgreSQL.

Tukaj sem hotel dodati en precej nesramen komentar, pa se bom vzdržal.

|
| V vsakem primeru se ti splaca cimbolj drzati se ANSI SQLa, torej takih
| querijev, ki jih podpirajo (bolj ali manj) vse SQL baze. Ce kdaj preneses
| svojo aplikacijo na drugo bazo, bos imel na tak nacin se najmanj
problemov.

To velja tudi za mysql SQL narečje. MySQL je daleč od ansi kompilantne
sql baze.

| Torej nobene uporabe "LIMIT" (navedeni bazi imata drugacno sintakso za to
| razsiritev) in procedur na bazi.

LIMIT še eden najmanjših problemov.


| Dobro je tudi, ce se lahko izognes uporabi subquerijev (MySQL to
podpira sele
| v verziji 4.1 - ce ti to ni problem), recimo: "select name from my_table
| where id in (select distinct id from my_other_table)" v MySQL < 4.1 ne
| deluje.

To je - milorečeno, neumna izjava. Da so subqueriji brezvezna zadeva, je
~ zraslo na zelniku mysql ljudstva. Nekatere stvari se zelo težko naredi
brez subqueryjev.

Vsaka spodobna sql baza podpira ta feature.

|
| Ce je pomembna hitrost, je najbolje, da se drzis sintakse SQLa, ki je
| veljavna v obeh bazah, pa konkretno primerjas na svoji aplikaciji -
hitrost
| je zelo odvisna od tvojega nacina oblikovanja SQL querijev.

Ponavadi se izvedejo veliko hitreje SQL stavki, ki uporabljajo za bazo
specifične operatorje in funkcije, torej zgornje ne drži.


Sicer pa, če nameravaš bazo uporabljati za kakšno preprosto aplikacijo,
potem ti bo mysql verjetno vredu služil. Je hiter, vendar hitrost plačaš
s tem, da ni:

- - subqueryjev (bo v 4.1)
- - foreign key-ev (deluje s pomočjo innodb backenda, ki pa ni default, pa
še to ne čisto tako kot bi moralo - poglej si ALTER TABLE v mysql
dokumentaciji)
- - view-ov (baje bi naj bli v 6.0 al 6.1 -> torej čez nekaj let)
- - unicode supporta
- - triggerjev
- - shranjenih procedur
- - TRANSAKCIJ

... Skratka, mysql je opipana kura med sql strežniki. Hiter je ravno
zaradi tega, ker ne podpira skoraj ničesar. In dogma, da je super za
internetne aplikacije, se mi zdi rahlo mimo, ker vsaka malce konkretno
spisana aplikacija uporablja vsaj foreign key-e. Je pa res, da fantje,
ki delajo v tako znano opevani navezi "mysql & php", večinoma ne poznajo
dosti pravil normalizacije relacijske sheme, itd...


Vse, kar je zgoraj opisano, postgres podpira. Če ti zgornja lista ne
pove kaj dosti, potem pa mislim, da je res najboljša rešitev zate mysql.

Za res orenk projekte pa mislim, da še vedno ni alternative za oracle in
db2.

lp, Brane

-----BEGIN PGP SIGNATURE-----

iD8DBQE/qqv+fiC/E+t8hPcRApybAJ92KmXcqX7ANQhJmGAMukyMWPqDaACfSDy3
oqGq/Z91bLgJDctFBiNxMGw=
=ebne
-----END PGP SIGNATURE-----




More information about the lugos-prog mailing list