Domanda

Attualmente sto lavorando a un progetto per iPhone che richiede l'accesso a una grande quantità di dati gerarchici memorizzati in un database sqlite locale. Una delle operazioni più comuni è il calcolo di un campo dello stato di rollup. In questo momento, lo sto facendo ricorrendo a tutti i discendenti di quell'elemento (che può essere ovunque da 1 a n livelli di profondità). Tuttavia, questo richiede un sacco di chiamate sql. Ogni chiamata sqlite su un iPhone impiega circa 250ms per essere completata e alla fine ciò aggiunge circa 7,7 secondi di tempo di elaborazione. Qualcuno ha qualche suggerimento di fare qualcosa del genere in meno di O (n) tempo? Penso che la radice del problema sia il semplice numero di chiamate sql effettuate, quindi è quello che sto cercando di ridurre.

È stato utile?

Soluzione

È necessaria una diversa organizzazione della tabella. Dai un'occhiata a Gestione dei dati gerarchici in MySQL o in Il libro di Joe Celko .

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