Ho un DB che memorizza alcuni oggetti complessi della mia app. All'avvio della mia app, carico gli oggetti in elenco e li memorizzo nella RAM. Ma a volte mi piacerebbe cercare un oggetto che soddisfi le condizioni (filtraggio), anche le condizioni sono complesse.
Ho sempre scritto un ciclo for (a volte molto complesso) per questa cosa, che gira su questi oggetti. Ma di recente ho sentito che le query DB e SQL hanno molti meccanismi di ottimizzazione (dipendenti dalla società DB) e funzionano più velocemente della ricerca regolare. Se ho capito bene, è meglio scrivere una query SQL che cerchi questi oggetti e restituisca gli ID degli oggetti. E poi con loro ID, prendi gli oggetti rilevanti.
Sembra essere la soluzione definitiva per la ricerca di oggetti.
Ma sono un po 'dubbioso su questa idea, perché tutto il tempo abbiamo imparato che DB è lento, ed è meglio caricare gli oggetti nella RAM e lavorarci sopra ...
Quindi ho due domande:
1) Le query sono in realtà più veloci della ricerca regolare (per ricerche complesse)?
2) Forse è vero per molti molti oggetti (migliaia), ma è vero per pochi oggetti (decine)?