Abbiamo circa 7-8 tabelle nella nostra applicazione Android aventi ciascuna circa 8 colonne in media. Entrambe le operazioni di lettura e scrittura vengono eseguite sul database e sto sperimentando e cercando di trovare modi per migliorare le prestazioni del livello DataAccess. Così, ora ho provato i seguenti:Ottimizzazione SQLite per l'applicazione Android
- Usare argomenti posizionali in cui le clausole (motivo: in modo che SQLite fa uso dello stesso piano di esecuzione)
- Racchiudere inserti e l'aggiornamento con le transazioni (Motivo: ogni operazione db è incluso in una transazione per impostazione predefinita.Questo rimuoverà l'overhead)
- Indicizzazione: non ho creato alcun indice esplicito diverso da quelli creati per impostazione predefinita sulla chiave primaria e sulle colonne di chiavi univoche. (Motivo: l'indicizzazione migliorerà il tempo di ricerca)
I have m ha preso in considerazione le mie ipotesi in parantesi; Perfavore, correggimi se sbaglio.
Domande:
Posso aggiungere altro a questa lista? Ho letto da qualche parte che evitare l'uso di db-journal può migliorare le prestazioni degli aggiornamenti? È un mito o un fatto? Come può essere fatto, se consigliato?
Le transazioni nidificate sono consentite in SQLite3? In che modo influenzano le prestazioni? Il problema è che ho una funzione che esegue un aggiornamento in un ciclo, quindi ho racchiuso il ciclo all'interno di un blocco di transazione. A volte questa funzione viene chiamata da un altro ciclo all'interno di un'altra funzione. La funzione chiamante racchiude anche il ciclo all'interno di un blocco di transazione. In che modo tale nidificazione delle transazioni influisce sulle prestazioni?
Le clausole where delle mie query utilizzano più di una colonna per creare il predicato. Queste colonne potrebbero non necessariamente tramite una chiave primaria o colonne univoche. Dovrei creare indici anche su queste colonne? È una buona idea creare più indici per un tale tavolo?
Grazie per aver dedicato del tempo per rispondere a questa domanda. – Samuh