Junior — Middle
Jakými kroky byste zvýšili výkon dotazu?
sobes.tech AI
Odpověď od AI
Pro zlepšení výkonu dotazů v Go můžete postupovat podle těchto kroků:
- Profilování — nejprve změřte, kde jsou úzká místa (CPU, paměť, vstup/výstup) pomocí
pprof. - Optimalizace algoritmů — zkontrolujte, zda lze zlepšit logiku dotazu, snížit počet operací.
- Použití cache — ukládejte výsledky často používaných dotazů, abyste se vyhnuli opakovaným výpočtům.
- Paralelizace — pokud je to možné, paralelizujte zpracování pomocí gorutin.
- Optimalizace práce s databází — používejte připravené výrazy, indexy, minimalizujte počet dotazů.
- Minimalizace alokací — vyhýbejte se zbytečným alokacím paměti, používejte pool objektů (
sync.Pool).
Příklad použití gorutin pro paralelní zpracování:
func processRequests(requests []Request) {
var wg sync.WaitGroup
for _, req := range requests {
wg.Add(1)
go func(r Request) {
defer wg.Done()
handleRequest(r)
}(req)
}
wg.Wait()
}