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