[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