È prassi consolidata non ottimizzare i programmi prima che tu non abbia
- indicazioni per un notevole problema di prestazioni
- sai per certo che il punto in cui stai ottimizzando è davvero la causa principale di quel problema
Detto questo, se hai l'indicazione che almeno uno dei valori di ricerca sta causando perdite di prestazioni, potrebbe essere semplice nel tuo caso fornire una soluzione generica che fornisce una strategia generale di precaricamento per tutti valori di ricerca (forse più semplici di una strategia individuale per un solo valore).
Se questa è la situazione, l'implementazione di tale pre-caricamento potrebbe andare bene. Essere consapevoli, questo non è gratis: precaricare hardcodes l'assunzione nel vostro programma che quei valore di ricerca non cambiano mai durante la vita del processo di applicazione, e se tale assunto diventa sbagliato, ciò comporterà ulteriori sforzi di sviluppo per mitigare questo.
Questo è noto come invalidazione della cache e spesso citato come uno dei due più difficili problemi in Informatica .
Are DB trips for lookup fetches expensive in today's world?
Questa tua domanda esprime un equivoco abbastanza comune: che si possa rispondere sensibilmente in generale. Per la mia esperienza l'unica risposta sensata è: dipende (sul DB, l'applicazione, l'intero sistema, la rete ecc.).
Ma permettetemi di rispondere a questa domanda in modo diverso: sì, è possibile che molti roundtrip DB possano diventare costosi in un sistema, specialmente quando la rete ha una latenza elevata (cosa non rara quando si accede a un DB su una rete geografica) , con molti router intermedi, canali VPN, crittografia dei dati, ecc.) Tuttavia, nulla tranne le tue misurazioni e le tue osservazioni possono dirti se questo è importante nel tuo sistema.