Bene, non possiamo dirti quale sarà più performante perché non abbiamo idea di quanto velocemente il tuo database stia interrogando per i dati di staging, rispetto a quanto velocemente l'API di Wikidata ti fornirà dati.
Per decidere, dovrai prima decidere se l'app deve funzionare se Wikidata è offline. Se è così, allora dovrai memorizzare il wiki per metodo 1.
Supponiamo che tu decida che devi mostrare qualcosa anche se Wikidata non funziona.
Dovrai configurare il tuo database per memorizzare le richieste degli utenti, insieme al metodo che stai usando per mostrare i dati (la tua copia o la nuova chiamata di Wikidata) e il tempo di elaborazione dall'inizio della richiesta alla fine del richiesta. Avrai bisogno di implementare qualcosa come una selezione casuale del metodo da usare (andrei 50/50 con qualcosa come una scelta pari / dispari sul timestamp corrente per decidere quale usare).
Dopo averlo installato per un po ', imparerai esattamente qual è la differenza di velocità tra i due.
Successivamente, potresti decidere una strategia come " Archivia la mia copia dei dati per 24 ore prima dell'eliminazione " (dove, se non hai una versione precedente dei dati di < 24 ore , lo estrai da Wikidata, poi lo memorizzi nel tuo database e poi lo restituisci all'utente. Altre strategie potrebbero includere miglioramenti delle prestazioni come avere la copia dei dati scritti nel database in modo asincrono in quello scenario, in modo che gli utenti non stiano aspettando sul tuo database l'azione Write prima di vedere i loro risultati di query.
In sostanza, esegui entrambi i metodi (in base alle tue esigenze) e misuralo!