Come ridurre al minimo il numero di query del database in un'API GeoJson (di paesi e aree più piccole) con dati personalizzati?

1

La versione generale della domanda è sopra - un po 'più in dettaglio, sto usando Django Rest Framework, ma sono contento che le risposte abbiano a che fare con il problema in astratto.

Quindi, ho dati con ~ 200 paesi, ~ 10.000 regioni (i paesi suddivisi) e ~ 600 distretti extra-piccoli nel Regno Unito.

Il mio piano deve attualmente inviare al client una richiesta, con il suo attuale livello di zoom e posizione, quindi sul server:

  1. filtra gli oggetti per correggere il livello di zoom
  2. filtra gli oggetti con quelli che si sovrappongono con la visualizzazione rect
  3. inserisci "dati personalizzati" nelle funzionalità prima di tornare

Il piano alternativo per 3. consiste nel ritrasferire i "dati personalizzati" in una richiesta separata.

Un po 'più di dettaglio su cosa sono i dati personalizzati - voti - ci sarà un gran numero di votabili e ancora più voti, il mio piano qui è di precalcare / memorizzare i totali dei voti per ogni domanda + area c'è un voto in, per rendere la restituzione dei dati il più velocemente possibile.

Tuttavia, non sono troppo sicuro di un modo ragionevole per ridurre al minimo il numero di query DB, ad esempio ottenere le aree geografiche corrispondenti alla vista e eseguire una query per ottenere tutti i "dati personalizzati" precalcolati corrispondenti.

Qualche idea su un buon modo per affrontare questo tipo di situazione è molto gradita. Potremmo essere bit che non ho pensato troppo (come evitare di inviare nuovamente i dati più del necessario se l'utente continua a scorrazzare)

    
posta Chozabu 22.01.2016 - 15:52
fonte

0 risposte

Leggi altre domande sui tag