2011-12-21 8 views
6

Cosa sarebbe meglio in termini di efficienza della memoria o avrebbe le migliori prestazioni complessive su Android e SQLite, ottenendo un conteggio record con cursor.getCount() o per eseguire un rawQuery con un COUNT su una normale clausola SQL (e utilizzare il cursore .getInt (0) in seguito per ottenere il conteggio restituito)?Ottieni il conteggio con cursor.getCount() o per eseguire un rawQuery con un COUNT su una clausola SQL?

Nota: non sto utilizzando i risultati, voglio solo il conteggio.

risposta

5

Se si utilizza il risultato della query dopo, poi, naturalmente, il modo migliore sarebbe quello di fare cursor.getCount() Questo è più veloce di fare 2 domande uno per ottenere il conteggio e uno per il risultato

EDIT:

Se non si stanno utilizzando i risultati, un rawQuery è più veloce perché si ottiene solo una colonna dal database anziché molti. Inoltre, perché sprecare risorse per eseguire una query e non utilizzare il risultato?

+0

Oh, no. Ho dimenticato di dire che non sto usando i risultati, in questo caso sono solo interessato al conteggio stesso. Correggerò la mia domanda –

+0

Ok, grazie. Il motivo per cui voglio solo contare è che sto visualizzando i record correlati dell'utente come badge su una scheda personalizzata sull'app. Pensa al badge nelle icone App di posta. Quindi sto ottenendo il conteggio dei preferiti, o altri record relativi all'utente attualmente loggato e non ho bisogno dei record, solo il conteggio. –

+0

felice di aver potuto aiutare. –

Problemi correlati