PostgreSQL vs. MySQL

Honza Pazdziora adelton na informatics.muni.cz
Čtvrtek Září 23 10:21:05 CEST 1999


> 
> k tem max(id) v tom clanku: zda se, ze implementace aggregate function v 
> PQ je uplne jina nez v MySQL, napr. "SELECT count(*) FROM tabulka" trva na 
> PQ 14.sec na cca milionu radkach na MySQL to je 0.0 sec. Jak se zda tak
> MySQL ma tyto veci asi vedene "nekde mimo" a do tabulky temer nesaha (jinak
> si to nedovedu objasnit), zatimco PQ to do urcite miry implementuje jako
> externi funkci (viz. CREATE AGGREGATE) a saha na data.
> 
> ######## MySQL:
> mysql> select count(id) from one_big;
> +-----------+
> | count(id) |
> +-----------+
> |   1178389 |
> +-----------+
> 1 row in set (0.00 sec)
> 
> ######## PostgreSQL:
> crux:~$ time psql big -c "select max(id) from one_big;"
>     max
> -------
> 1178389
> (1 row)
> 
> real    0m12.305s
> user    0m0.010s
> sys     0m0.000s
>
>  To je take duvod proc to autorovy na te URL tak dlouho trvalo v PQ. 
> Asi by mel jinak optimalizovat aplikaci aby se vyhnul tem max().

Ale count a max je snad uplne neco jineho -- count jsou metadata,
max je uz informace zalozena na datech (i kdyz samozerjme, pokud mam
na tom sloupci index, tak ani max nemusi prochazet celou tabulku).

> Napriklad todle clovek zjisti na jedne tabulce.. (coz? Honzo P. :-))

No, a kolikrat ve sve aplikaci typicky delate

	select count(*) from tabulka

bez jakohokoli where. Ja si teda nepamatuju, ze bych to nekde
produkcne pouzil. Tohle delam pri vyvoji, kdyz se chci v dbish
podivat, co v te tabulce je, ale ne pri provozu.

Trosku mimo mi v tom clanku prijdou taky ty udavane velikosti programu
v pameti -- velke casti toho jsou samozrejme sdilene, cili pokud to
bylo brano z topu nebo tak, tak to neni realny ukazatel.

Pro Solaris existuje velmi pekny balik (zajemcum mohu dohledat
podrobnosti), ktery se nejak povesi na jadro a pak umoznuje presne se
divat, co ktere programy zabiraji. Clovek zjistit, ze ani ps, ani
top neni nic, podle ceho je radno se ridit.

------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
 .project: Perl, DBI, Oracle, MySQL, auth. WWW servers, MTB, Spain, ...
------------------------------------------------------------------------


Další informace o konferenci Databases