| | |
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
Autor | Správa |
---|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 21.11.2011 20:36 | |
|
Nazdarek,
celkom by ma zaujimalo, ako sa robia velke databazy s tym, aby pracovali rychlo.
Mam tabulku s dvoma stlpcami (oba typu INT) a obsahuje priblizne 2 miliony zaznamov. A uz je to celkom bieda, staci ked dam len vybrat nieco napriklad z prostriedku tabulky teda
Kód: SELECT * FROM `bl_relationship` LIMIT 1859010 , 30
a select trva niekedy az do 7 sekund. (pokial sa uz robi opakovane po sebe [aj s roznymi limitami] tak to uz ide pod 1 sekundu). niekedy sa zase stane, ze mi vrati nulovy pocet riadkov (aj ked isto nie som na konci tabulky, isto vyberam zo stredu)
mam to v MySQL, InnoDB
_________________ Sorry za prelkepy |
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 Bydlisko: Bratislava |
Riesenim su indexy.
Kedze mas tabulky v InnoDB (co je dobre), tak v pripade ze na jeden zo svojich stlpcov (alebo na oba) spravis "PRIMARY KEY" alebo "UNIQUE" index, tak databaza tento index automaticky spravy ako tzv "clustered", cize aj data budu fyzicky ukladane v abecednom poradi. Vdaka tomu sa potom databaza dokaze lahko orientovat v adtach a rychlo najde to co hladas.
Odporucam ti primary key na stlpec, ktory mas spomenuty vo WHERE podmienke pri vybere. Ak vyberas podla oboch, tak daj do primary key oba stlpce. Snad v tabulke nemas duplicitne zaznamy.
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|