Per prima cosa, assicurati che il tuo programma abbia davvero bisogno di un'ottimizzazione. Se il tuo programma è semplice e veloce sufficiente per tutti i casi di utilizzo correnti, non complicare le cose cercando di aggiungere un meccanismo di caricamento ottimizzato per motivi di velocità che nessuno richiede.
Ma supponiamo che i tuoi utenti si lamentino della lentezza del tuo programma quando caricano i dati in palio, quindi la prossima cosa è misurare la velocità corrente e assicurarti che le prestazioni siano realmente in relazione con il numero di record restituiti dalla query. Per molte applicazioni db che ho visto, questo non era il caso, spesso il numero di query (e non il numero di record restituiti) è ciò che domina la velocità del processo di caricamento.
Quindi se sei al 100% a causare il problema, per l'ottimizzazione che hai in mente è necessario assicurarsi che i record già caricati non vengano modificati tra due operazioni di caricamento della pagina, quindi caricare solo i record più recenti e la fusione con i dati già caricati porterà a un risultato valido che riflette effettivamente ciò che è nel database.
Quando sai per certo che è il caso, hai bisogno di una colonna nella tua tabella che ti permetta di distinguere i record "più vecchi" e "più recenti". Questo può essere in genere un codice ID autoincrementato o un valore data / ora che indica il tempo di creazione del record. Senza una colonna di questo tipo, non avrai molte possibilità di fare questo tipo di ottimizzazione. Se esiste una colonna di questo tipo, calcola il valore ID massimo o il valore data / ora dei dati già caricati e aggiungi alla tua query una condizione "WHERE" del modulo ".. WHERE id > maxID"
.
Infine, non dimenticare di misurare di nuovo per verificare che l'ottimizzazione abbia realmente aumentato le prestazioni. Se lo fa, mantienilo, se no, fai un favore a te stesso e butta via la soluzione ottimizzata sostituendola con il codice originale non ottimizzato (ma molto probabilmente più semplice, più mantenibile).