Posted By: medved (A~z na v~eky Mikov~ce.) on 'CZdatabases'
Title:     Re: rychlost vyhledavani v DB
Date:      Tue Nov 12 22:32:50 2002


Takze pokud bych chtel vyresit tuto ulohu co nejrychleji tak,

1) vybodnu se na velke databazove servery - ty jsou delany pro prostredi kde 
je a) vice soucasnych uzivatelu kteri b) delaji v databazi ruzne operace 
(nejen vyber jednoho zaznamu)

2) podival bych se po nejake "in memory" databazi. V databazovych systemech je 
vzdy nejvetsi zdrzeni pri cteni z disku

3) pripadne bych vytvoril neco sam s tim, ze bych:

a) pouzival b-tree strom jako index nad prohledavanym sloupcem
b) pouzil neco jako clustered index v Sybase/MS SQL - listy indexu jsou 
zaroven stranky s daty
c) vhodne zvolil velikost pametove stranky - asi tak, aby byla stejne velika 
jako jeden zaznam - ale zase vzhledem k velikosti celych dat (a tim i indexu) 
a indexovaneho klice - pametova stranka indexu obsahuje hodnoty klice a odkaz 
na dalsi stranku indexu.
a d) zmyslel se nad moznou kompresi dat v pameti nebo vhodnou volbou kodovani 
dat. Existuji systemy s asymetrickymi kody ("e" ma min bitu nez "j"), ktere 
docela minimalizuji pametove naroky (napr. na text). Ale pak je to otazka 
vyvazovani pamet vs CPU... 

A ted proc doporucuji vyse uvedene:

Vsechny velke db servery prohravaji s malymi databazemi v situaci s jednim 
uzivatelem, ktery dela pouze jeden typ operaci. To protoze delajki jeste 
celou radu pro tento konkretni ucel nepotrebnych ukonu. Napriklad 
optimalizace dotazu - pokud je jen jednoho typu, je to zbytecne. Nebo rizeni 
viceuzivatelskeho pristupu - zamky, transakce opet zbytecne.

To jsou veci, ktere jsou potreba u "enterprise" reseni, kde je dobre pokud je 
uzivateluv dotaz optimalizovan i podle aktualne probihajicich dotazu ostanich 
uzivatelu. 

Bye

Medved

No matter where you go, everyone is connected.

Search the boards