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