Autor Zpráva
Pipa
Profil *
Mám tabulku MKN10 o 3 sloupcích:
MKN_ID smallint(5) [unsigned]
kod char(4)
nazev char(30)

definován vícesloupcový index (MKN_ID,kod,nazev)

Jedná se o poměrně rozsáhlý číselník (14 196 záznamů). Když chci tento číselník načíst do <SELECT>, trvá to neskutečně dlouho. Používám sql dotaz SELECT MKN_ID,kod,nazev FROM MKN10.

Nevíte, jak to vyřešit? Chápu, že 14 000 položek do vysouvacího menu je trošku moc, nenapadá mě teď ale, jak to vyřešit elegatněji.

Díky!
Aesir
Profil
Pipa:
Když chci tento číselník načíst do <SELECT>, trvá to neskutečně dlouho.

Otázkou je, jestli trvá tak dlouho dotaz do db nebo následné zpracování (výpis).
k
Profil *
rekl bych ze nejpomalejsi bude spis to vypsani tech 14000 polozem ne samotny sql dotaz.
mozna by bylo dobre jednotlive zaznamy nejak roztridit a pouzit alespon 2 selectboxy a navzajem je propojit JS.
thingwath
Profil
Ten index tam pro tenhle případ není moc významny, pokud načítáte vždy všechno, nemá cenu ho tam mít. Rozumným řešením je prostě nenačítat 14000 položek, to si nedokážu představit že lze rozumně upotřebit. A pokud lze, tak to určitě nemusí být hned.

Jak dlouho to zhruba trvá?
Jakub
Profil
Ahoj, nebyl by schůdnější select (když už tam musí být) kde si vybereš písmeno MKN, to by ti vypsalo dg. + ev. vyhledávání nad celou db? Prostě to nějak rozumně strukturovat, select se 14000 položkami je dost user-unfriendly...
Btw. nechci být za šťourala, ale myslím, že hodně velká část názvů MKN se do char(30) nevejde.
Kajman_
Profil *
Třeba se to řeší tak, že se otevře nové okno, v něm si třeba pomocí filtrů vylistujete správnou položku a nějakým zaškrtávátkem ji vrátíte do původního okna. Je to však řešení závislé na javascriptu.
Pipa
Profil *
Jo, to je jasné, že to není moc user friendly. Líbil by se mi třeba vícenásobný rozbalovací SELECT, neco jak je ve Win pod nabidkou Start, kde se při on mouse over rozbalí další podnabídka. Bohužel jsem v javascriptu začátečník a toto by bylo nejspíš složité. Otázkou zůstává, jestli by mi to vůbec pomohlo. Co si o tom myslíte?

Btw. pro názvy diagnoz používám jen zkrácené názvy, takže se do char(30) vejdou.
peta
Profil
Pipa
Ja bych zustal u reseni Jakub s pismenky.
- jednak bych zrusil index, pokud jej k nicemu nevyuzivas
- co jsou to za polozky a k cemu jsou dobre? seznam slov (slovnik?)?
Pokud je to seznam slov, 14.000 polozek, bylo by rozumne dat 1, mozna 2 selecty prvnich 2 pismen. Mozna vyuzit javascript, ktery pri psani slova da prvni moznou alternativu a pri druhem pismenu premeni input na Select s vybranymi rekneme 100 polozkami? Metodu vyberu bych volil JS httprequest.

Priklad treba verejny portal pracovnich mist: http://portal.mpsv.cz (zvol si vyhledavani mista, podle oboru a ted, kdyz zvolis kraj, takze se zmeni cisla v zavorkach u jednotlivych kategorii a pri tom blikne prohlizec, ze neco nacital)
Mozna by bylo velice fajn pridat sloupec s prvnimi 2ma pismeny a ten zaindexovat. (ale tak indexum moc nerozumim, mozna staci, jak to mas ted)

Timto zpusobem by slo resit i to tve rozbalovaci menu. Jenomze se ti muze stat, ze se ti rozbali treba 1000 polozek, coz je 1000x200 znaku, 20k dokment a to chvili trva nez se zpracuje.

tak odhadem, 1 pismeno a-z je asi 30 moznosti, 2 pismena 30x30, cili
14000:30 = 450+-
14000:900 = 150+-
14000:12000 = 1+-
odhad, rovne rozdeleni 1:30
realne bych to videl takto: (100-1500) (50-500) (1-10)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0