Middle
Jaký je algoritmus pro dotazování dat ze dvou tabulek a jaká je jeho složitost?
sobes.tech AI
Odpověď od AI
Dotazování dat ze dvou tabulek se obvykle provádí pomocí operace JOIN v SQL. Algoritmus závisí na typu spojení (INNER JOIN, LEFT JOIN atd.) a způsobu provedení (vnořené smyčky, hash join, merge join).
Příklad dotazu:
SELECT a.*, b.*
FROM tableA a
JOIN tableB b ON a.key = b.key;
Algoritmus:
- Pro každý záznam z první tabulky se hledají odpovídající záznamy ve druhé podle podmínky spojení.
- Výsledky jsou sloučeny do jednoho řádku.
Složitost závisí na implementaci:
- Nested loops join — O(N*M), kde N a M jsou velikosti tabulek.
- Hash join — O(N + M), pokud data sedí do paměti a hashování je efektivní.
- Merge join — O(N log N + M log M), pokud jsou tabulky seřazené.
Optimalizace dotazu a výběr algoritmu závisí na indexech, objemu dat a statistikách databáze.