Zadejte hledaný výraz...

Left join – optimalizacia

webgo
verified
rating uzivatele
5. 4. 2010 21:51:13
Keby sa porovnali 2 metódy oľadom optimalizácie výkonu prikazov php a požiadaviek na MySQL. V pripade, že potrebujem spojit databázu so 4-5 databazami je výhodne to urobit:
1. cez spojenie s 4-5 LEFT JOIN-ami
2. alebo spojenie s 1 LEFT JOINOM, ostatne jednoduchšie údaje (kraj, typ registracie a pod.) dať ešte predtým vybrať a uložiť do poľa kraje, typ registrácii a pod.
ďakujem :) :) :)
5. 4. 2010 21:51:13
https://webtrh.cz/diskuse/left-join-optimalizacia/#reply486133
Napsal webgo;490792
Keby sa porovnali 2 metódy oľadom optimalizácie výkonu prikazov php a požiadaviek na MySQL. V pripade, že potrebujem spojit databázu so 4-5 databazami je výhodne to urobit:
1. cez spojenie s 4-5 LEFT JOIN-ami
2. alebo spojenie s 1 LEFT JOINOM, ostatne jednoduchšie údaje (kraj, typ registracie a pod.) dať ešte predtým vybrať a uložiť do poľa kraje, typ registrácii a pod.
ďakujem :) :) :)
Bylo mysleno nejspise s 4-5 tabulkami.
Relacni model je jiste krasne cisty a spojene selecty jsou jiste efektivni, ale pri vetsich databazich prestava byt efektivni.
Pokud je databaze mala, tabulky obsahuji relativne malo zaznamu neni problem udelat tech 4-5 left joinu tj 1. Pokud je tech dat vic tak jednoznacne 2.
5. 4. 2010 22:09:44
https://webtrh.cz/diskuse/left-join-optimalizacia/#reply486132
node
verified
rating uzivatele
(5 hodnocení)
6. 4. 2010 20:33:51
Spajat 4-5 tabuliek joinam neni nic neobvikle.
6. 4. 2010 20:33:51
https://webtrh.cz/diskuse/left-join-optimalizacia/#reply486131
hm
verified
rating uzivatele
(20 hodnocení)
7. 4. 2010 09:09:47
delal jsem i spojovani zhruba 10ti tabulek v jedinem dotazu a nemyslim si ze by to bylo spatne - naopak si myslim ze prave proto neco takoveho existuje a pouzil bych to :) (mimochodem slo o databazi s gigabajty dat a i presto dotaz jede rychle - tedy nemyslim si ze by to na velkych databazich nebylo efektivni)
7. 4. 2010 09:09:47
https://webtrh.cz/diskuse/left-join-optimalizacia/#reply486130
node
verified
rating uzivatele
(5 hodnocení)
7. 4. 2010 10:17:54
Pri joinoch ide hlavne o jednu vec, a to spajat tabulky na indexoch. Pokial by sa nespajali na indexoch, vtedy je tam prepad vo vykone, inak je to uplne v poriadku.
7. 4. 2010 10:17:54
https://webtrh.cz/diskuse/left-join-optimalizacia/#reply486129
Napsal AlesiBoss;491641
delal jsem i spojovani zhruba 10ti tabulek v jedinem dotazu a nemyslim si ze by to bylo spatne - naopak si myslim ze prave proto neco takoveho existuje a pouzil bych to :) (mimochodem slo o databazi s gigabajty dat a i presto dotaz jede rychle - tedy nemyslim si ze by to na velkych databazich nebylo efektivni)
Cokoli co je nad par desitek ms je pro me pomale :-)
7. 4. 2010 10:32:34
https://webtrh.cz/diskuse/left-join-optimalizacia/#reply486128
hm
verified
rating uzivatele
(20 hodnocení)
7. 4. 2010 10:58:13
Napsal Neregistrovaný;491689
Cokoli co je nad par desitek ms je pro me pomale :-)
taky ze to rozhodne vic jak par desitek ms neni :) dokonce bych rekl ze i desitky milisekund nejsou zrovna dvakrat idealni :) max 10ms je pro me limit - pouze vyjimecne si dovolim do 50ms ...
Základ je prostě správné nastavení relací, klíčů, indexů a nakonec k tomu správně napsaný dotaz - pokud tohle dodržíš, bude dotaz rychlý.
takze smysl tveho prispevku?
7. 4. 2010 10:58:13
https://webtrh.cz/diskuse/left-join-optimalizacia/#reply486127
duben
verified
rating uzivatele
(49 hodnocení)
7. 4. 2010 11:15:24
Z hlediska DB optimalizace záleží hodně na tom co spojuješ, jak to spojuješ a na co optimalizuješ.
Databázi máš denormalizovanou nebo ne? Optimalizuješ na rychlost, přenos dat, paměťovou náročnost? Jak velké tabulky spojuješ?
Pokud budeš spojovat 4-5 tabulek s desítky nebo stovkami záznamy v porovnání s 2 tabulkami kde jsou statisíce záznamů, bude záležet na typu datového pole, indexech a taky jaký typ indexu to je. Jak velké jsou celé tabulky. Jestli jsou indexy oddělené od dat, nebo na stejném logickém disku apod.
Obecně s tím co se tady na WT obvykle řeší, tj. malé DB pro PHP systémy bych obecně poradil 1 left join než 4, protože je tam menší náročnost na spárování dat. Bude to v řádech setin milisekund pro malá data, ale pokud půjde o velký počet volání DB za vteřinu tak i setiny milisekund dělají velké rozdíly. Podstatnější z hlediska optimalizace ale může být použití dalších metod. Jako třeba použití procedur, které se na rozdíl od dynamických SQL nemusí pokaždé před spuštěním kompilovat, úprava indexů, měření kritických bodů zátěže, úpravy datových typů, normalizace nebo naopak denormalizace dat a tak dál. Čím víc svojí otázku specifikuješ, tím správnější radu můžeš dostat.
7. 4. 2010 11:15:24
https://webtrh.cz/diskuse/left-join-optimalizacia/#reply486126
Napsal AlesiBoss;491710
taky ze to rozhodne vic jak par desitek ms neni :) dokonce bych rekl ze i desitky milisekund nejsou zrovna dvakrat idealni :) max 10ms je pro me limit - pouze vyjimecne si dovolim do 50ms ...
Základ je prostě správné nastavení relací, klíčů, indexů a nakonec k tomu správně napsaný dotaz - pokud tohle dodržíš, bude dotaz rychlý.
takze smysl tveho prispevku?
Jen ten ze join 10 tabulek o objemu gigabajtu neni mozno mit do 10 ms, ani do tech 50ms. Pokud se jedna o ziva data, ktera jsou cas od casu updatovana.
7. 4. 2010 12:30:38
https://webtrh.cz/diskuse/left-join-optimalizacia/#reply486125
duben
verified
rating uzivatele
(49 hodnocení)
7. 4. 2010 12:51:26
Napsal Neregistrovaný;491779
Jen ten ze join 10 tabulek o objemu gigabajtu neni mozno mit do 10 ms, ani do tech 50ms. Pokud se jedna o ziva data, ktera jsou cas od casu updatovana.
On psal ze databaze ma gigabajty dat, ale nepsal nic o tabulkach. Takze treba spojuje 4 tabulky ktere maji par stovek zaznamu a lezi v DB s dalsimi tabulkami ktere maji ty gigabajty.
Ono teda pri dobre indexaci, jde i na par gigabajtech dosahnout milisekundy, ale co si budeme povidat databaze v radu jednotek az desitek gigabajtu je porad mala maximalne stredni databaze. Opravdu velke databaze maji od stovek GB po nejake ty TB.
7. 4. 2010 12:51:26
https://webtrh.cz/diskuse/left-join-optimalizacia/#reply486124
Napsal duben;491804
On psal ze databaze ma gigabajty dat, ale nepsal nic o tabulkach. Takze treba spojuje 4 tabulky ktere maji par stovek zaznamu a lezi v DB s dalsimi tabulkami ktere maji ty gigabajty.
No v tom pripade to napsal zcela neucelne, ale to uz je jina vec :-)
7. 4. 2010 12:53:35
https://webtrh.cz/diskuse/left-join-optimalizacia/#reply486123
Pro odpověď se přihlašte.
Přihlásit