Ho un'applicazione Qt, che invia e riceve messaggi. I messaggi sono memorizzati in un MongoDB locale.
L'applicazione ha una finestra di elenco dei messaggi, che mostra i messaggi inviati, ricevuti e tutti (a seconda della vista). Per motivi di prestazioni, l'applicazione ha una QList, che contiene QPairs di Mongo ID e il messaggio stesso, quindi più o meno tutti i messaggi sono disponibili nell'applicazione.
Vogliamo limitare il no. dei messaggi mostrati, perché la vista diventa più lenta per 1000 e più messaggi.
L'approccio semplice era solo per limitare il no. di coppie memorizzate in QList.
Tuttavia, non ne sono sicuro, se questo è vero. Recentemente ho letto qui ( EDIT: trovato) una domanda che fondamentalmente diceva "Il tuo codice applicativo non sarà più intelligente / veloce / migliore per le cose per cui è stato progettato un DB (ad esempio, ordinamento, ottenimento di un sottoinsieme, ecc.)". Inoltre, mantenere la QList in sincronia con il DB ci causa grattacapi e alcuni casi d'angolo come un messaggio molto vecchio possono essere aggiornati e quindi devono essere nuovamente visualizzati.
Quindi la domanda è: un approccio DB-only (es. interrogare il DB per 1000 messaggi ogni volta che la vista deve essere aggiornata) essere più veloce quindi memorizzare i messaggi mostrati in modo acuto nella QList e cercare di mantenerli sincronizzati.