Jak na browse velke tabulky v sql ?
Jiri Borik
jiri.borik na volny.cz
Neděle Únor 22 01:20:24 CET 2004
On Sat, 21 Feb 2004, Michal Kubecek wrote:
> > A zase dokolecka, jak potom udelate tu zmenu setrideni bez nutnosti
> > nasledne projet v cyklu cely select result, abyste nasel spravny offset?
>
> select count(*) from TBL where NEWKEY<current_new_key
Jenže takový dotaz není asi moc optimální. Pokud si to dobře představuji,
tak se jedná o sekvenční průchod od začátku až k dané pozici, což u
zmiňovaných velkých souborů nebude ono. Sice to udělá místo klienta
server, ale v konečném důsledku to stejně může být pomalé.
Nešlo by něco jako:
select from TBL where where NEWKEY<current_new_key
order by NEWKEY desc limit 50
union
select from TBL where where NEWKEY>=current_new_key
order by NEWKEY limit 50
To by mělo dát +-50 záznamů dle aktuální hodnoty klíče. A dle rowid mezi
nimi najdu pracovní záznam a mám okolí podle nového klíče. Další stránky
dopředu nebo vzad bych získával podobně.
Jiří Bořík <jiri.borik na volny.cz>
Další informace o konferenci Databases