firebird vs. postgres

Ing. Miloslav Ponkrác miloslav.ponkrac na infos.cz
Čtvrtek Květen 30 21:51:06 CEST 2002


> Myslim, ze dost argumentu, proc nelze v rozumnem prostredi (rozumejte
>jinem nez off-line updatovany treba katalog - ale proc v tom pripade
>nepouzit LDAP a ne nastroj/produkt, ktery se tvari, ze patri jinam a
>neumi zakladni veci) padlo v konferenci databases na linux.cz, pripadne
>pgsql na gvid.cz (adresa je IMHO trosku jinak:->)...


Možná to řeknu trochu vulgárně, mám-li své zkušenosti, potom nepotřebuji
argumenty druhých. MySQL má své výhody i nevýhody. Do některých projektů
jsem MySQL úspěšně nasadil, a v některých jsem raději nasadil něco jiného.
Někam šel třeba MS SQL, Sybase, Oracle, či Interbase. Podle toho, co bylo
potřeba. Je strašně fajn, že si můžu vybrat.

> Mate pravdu, ze mam PgSQL rad a vite proc? Protoze to byla do nedavna
>jedinna databaze, ktera sla pouzit na developerskou praci a pak
>jednoduse preportovat napr. na Oracle. A s podporou language-bindings je

Já netvrdím, že nemáte pravdu v této vlastnosti. Ale já prostě nepreferuji
vždy
kompatibilitu s Oraclem. Někdy jsou lepší jiné vlastnosti.

Například lokální databáze pro lokální aplikaci. Tam bych rozhodně nasadil
třeba spíše MySQL, nebo Interbase, či chcete-li Firebird.

Jednoduché, levné projekty s jednoduchým datovým modelem, taktéž
MySQL. Atd..

Každý projekt s mohutnou převahou čtení oproti zápisu, atd..

>na tom take daleko dal. MySQl je v PHP hezke, ale krome Webu jaxi na...
>a vyuzit ciste C knihovnu - zkuste uvidite...:-). O podpore JDBC v tuto
>chvili nic nevim, v dobe, kdy jsem ji shanel nebyla a ani se o ni
>neuvazovalo - pry to nikdo nechtel...


MySQL má mnohé nedostatky, ale co jsem si na ní opravdu oblíbil je podpora.
Sám jsem osobně použil a používám následující (tudíž to necucám z prstu, ani
nekopíruju samochválu z mysql.com): JDBC ovladač pro MySQL spolu s
javovskými aplikacemi, naprosto bez problému. ODBC ovladač pro spolupráci
s MS Accessem. Dále používám PHP rozhraní pro MySQL a napsal jsem několik
aplikací s využitím čistého C rozhraní pro MySQL. Takže nechápu, o čem
mluvíte.
Tento Váš odstavec ve světle mých zkušeností považuji za snůšku nesmyslů,
promiňte mi ten výraz.

> Znam, v ramci DP jsem srovnaval moznosti a praktickou implementaci
>jednodussiho systemu, verte, ze neexistence transakci (to neni jen o
>atomicnosti, ale treba o tom, ze proste jsou situace, ktere jednim DML
>prikazem proste nepopisete) vyvoj pod MySQL dost znacne zkompikovalo
>vyvoj teto verze a dodnes vim o soubezich, ktere by konzistenci
>rozcupovaly, lec MySQL mi nenabidno ani zakladni moznosti pro tyto
>veci...


Transakce v MYSQL existují. Dokonce při mých praktických pokusech se
chovaly rozumně, a pokud si přehodím druh tabulek z defaultního MyISAM
na InnoDB, tak je MySQL dokonce mnohem rychlejší.

Na druhé straně musím napsat, že transakce byly odladěny dobře tak cca
před půl rokem. Ale dnes je to paráda, zkuste.

>> Trochu mi uchazi, v cem je rozdil, jestli se o integritu staram sam, nebo
>> sam prostrednictvim stored procedures. Uznavam, ze pomoci SP je to
>> elegantnejsi, ale nakonec je to jedno, nebo ne?


Není to jedno. Až napíšete složitější projekt, tak velmi budete rád za
databázi, která hlídá integritu, má procedury, triggery, apod..

>> U MySQL si můžete zvolit typ databázových tabulek. Typ InnoDB je IMHO
>> nejlepším pro podporu transakcí, a ACID zvládá.
>
> A nejsou nahodou tyto InnoDB tabulky pouze rozhranni nad BerkeleyDB - v
>podstate takove jednoduse slozitejsi hashovaci tables... - v databazich
>bezneho typu moc nepouzitelne... navic pokud se do te dokumentace
>podivate poradne, zjistite, ze InnoDB nejsou plnohodnotne tabulky z
>pohledu databazovy objekt a nelze tedy je brat vazne... - je to jen
>takova zaslepka neceho, co puvodni autori MySQL povazovali za zbytecnost
>a cim dal vice lidem to chybi, bohuzel zpravidla az ve chvili, kdy
>zjisti, ze nekde v jejich systemu je chyba, chybu detekuji, ale zaroven
>rovnez zjisti, ze ji nejsou schopni odstranit na aplikacni urovni...


V současné době jsou podporovány tabylky typu BDB (BerkeleyDB) a InnoDB.
BDB tabulky nepodporují tolik možností v transakcích jako InnoDB.
Předpokládám
tedy, že to není totéž.

Ke zbytku, neznám implementační detaily, Vy asi také ne. Takže ty argumenty
jsou
pouze akademické dohady. Pokud se mýlím, pak promiňte.

S pozdravem

Miloslav Ponkrác



Další informace o konferenci Linux