[python] sqllite - existuje záznam v DB?
Petr Vanek
petr na scribus.info
Čtvrtek Únor 8 13:06:13 CET 2007
> > jsem jen hloupý chlapec z předměstí, ale opravdu netuším, proč
bych na to měl
> > používat subquery? Nebo mi něco uniklo?
>
> Zásada je dolovat z databáze jen ty informace, které nazbytně
> potřebujete - je zbytečné chtít cokoli víc, a zbytečné zatěžovat
databázi.
s tim souhlasim
> Takové COUNT musí spočítat skutečný počet řádků - aby pak v
programu
> tato hodnota byla zahozena a tranformováno v pouhou hodnotu
> existuje/neexistuje. Databáze tedy musela udělat zbytečnou práci,
která
> nebyla k ničemu.
>
> EXISTS pouze zjistí, zda takový řádek existuje, tedy databáze může
> udělat méně práce. Databáze zjistí jen přesně to, co se využije.
ano, ale v, a ted pozor (opravdu dobry pozor), tramtadada - v *poddotazu*.
Takze abych zjistil udaj, ktery mohu zjistit prostym selektem, ktery pojede
index range scanem - idealne pres unique ix, bych mel udelat umely
pseudo-join?
Napoveda: jakakoli reference SQL.
Mimochodem, a ted uz se nebavme o sqlite, at si to zkousim na oracle,
jak to zkousim, tak execution plan a vysledne casy s exists v tomto pripade
lepsi nedostanu.
A ani v sqlite ne. viz:
orde from detail
---- -------------- ----------
0 0 TABLE foo
vs.
orde from detail
---- -------------- ----------
0 0 TABLE foo
0 0 TABLE foo
> Jinak jsem jenom hloupý chlapec, který optimalizuje databáze a už si
> jakožto databázový administrátor vydělal nějaký ten peníz
optimalizací
> databází do vysokých zátěží.
chtel jsem byt politicky korektni a citaci odmazat, ale nemohu si pomoci:
"kvaky, kvaky, kvaky. Znal jsem tolik zaslouzilych guruu, a jejich systemy
ryly tlamou v zemi..."
zdar a silu
petr vanek,
ten ktery jeste nikdy nevidel databazi, ani tu nejmensi v okrese ;)
Další informace o konferenci Python