Domanda

Ho bisogno di memorizzare un grafo in un database di Google App Engine. Per gli scopi di ottimizzazione, sto pensando di utilizzare database di indici . Con Google App Engine, esiste un modo per definire le colonne di una tabella di database per creare il suo indice?

I avrà bisogno di qualche ottimizzazione, dato che la mia applicazione utilizza questo grafico non orientato memorizzati su un filtraggio basato sul contenuto per raccomandazione voce. Inoltre, l'algoritmo di raccomandazione aggiorna i pesi dei bordi un po 'del grafico.

Se non è possibile utilizzare gli indici dei database, si prega di suggerire un altro metodo per ridurre interrogazione tempo per la tavola del grafico. Credo che il mio algoritmo fa più dati provenienti da operazioni di recupero Tabella Grafico di operazioni di scrittura.

PS:. Sto usando Python

Altri suggerimenti

sono in realtà vedendo query proibitivamente lenti? Non sto cercando di indovinare. Ho il sospetto che questo è in qualche modo l'ottimizzazione prematura. l'archivio dati motore app non fa alcun ordinamento, filtraggio, si unisce, o altre operazioni significative nella memoria, quindi tempi di query sono generalmente abbastanza costante. in particolare, la latenza delle query non dipende dal numero di entità del vostro datastore, o anche il numero di soggetti che corrisponde alle Sue esigenze. dipende solo dal numero di risultati che chiedono.

In una nota correlata, l'aggiunta di indici al vostro datastore sarà non velocizzare le query esistenti. Se una query ha bisogno di un indice personalizzato, non si degrada e correre più lento senza di essa. la query semplicemente non funzionerà affatto finché non si aggiunge l'indice.

per la query specifica si parla, select * from edges where vertex1 == x and vertex2 == y, il datastore può essere eseguito senza un indice personalizzato a tutti. vedi questa sezione la documentazione per maggiori dettagli.

In breve, basta eseguire le query avete bisogno, e non pensare troppo su indici o cercare di ottimizzare, come se tu fossi un DBA. non è un database relazionale. : P

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top