Další optimalizační trik, který v poslední době s oblibou používám, je EXISTS. Mám dvě tabulky - artifacts_detail (140 tisíc záznamů) a plugins (30 tisíc záznamů) a potřebuji získat záznamy z tabulky "artifacts_detail", které jsou obsažené v tabulce "plugins" (je to propojené přes sloupce group_id, artifact_id a version a já to potřebuji spojit přes group_id a artifact_id ... v tabulce "plugins" je řada verzí záznamů). Možnosti:
A) INNER JOIN (9 300 ms):
select distinct a.* from plugins p join artifacts_detail a on p.group_id = a.group_id and p.artifact_id = a.artifact_id
B) SPOJENÍ VE WHERE (9 800 ms):
select distinct a.* from plugins p, artifacts_detail a where p.group_id = a.group_id and p.artifact_id = a.artifact_id
C) EXISTS (500 ms):
select a.* from artifacts_detail a where exists (select 1 from plugins p where p.group_id = a.group_id and p.artifact_id = a.artifact_id)
Školení mi pomohlo ujasnit si jak má správně probíhat testování kódu, představilo užitečné knihovny a nástroje. Vše bylo podáno zábavnou formou, takže nebyl problém udržet pozornost. Navíc byl výhodou dostatek
Jedno z nejlepších školení za poslední roky. Kromě seznámení se Springem apod. mě velmi příjemně překvapila hluboká znalost probírané látky a schopnost ji srozumitelně vysvětlit v případě ad hoc dotazů.
Přestože jsem Cčkař, tak jsem se na školení JUnit dozvěděl nové věci. Zejména co se týče metodiky jednotkového testování a některých odborných termínů.