2011-12-21 11 views
6

Lo que sería mejor en términos de eficiencia de la memoria o tendría el mejor rendimiento general en Android y SQLite, obteniendo un recuento de registros con cursor.getCount() o para ejecutar una rawQuery con un COUNT en una cláusula SQL normal (y usa el cursor .getInt (0) más tarde para obtener el recuento devuelto)?Contar con cursor.getCount() o ejecutar una rawQuery con un COUNT en una cláusula SQL?

Nota: No estoy usando los resultados, solo quiero el conteo.

Respuesta

5

Si está utilizando el resultado de la consulta después, a continuación, por supuesto, la mejor manera sería hacer cursor.getCount() Esto es más rápido que hacerlo 2 consultas de uno para obtener el conteo y uno para el resultado

EDIT:

Si no está utilizando los resultados, entonces una rawQuery es más rápida porque está obteniendo solo una columna de la base de datos en lugar de muchas. Además, ¿por qué desperdiciar recursos para ejecutar una consulta y no utilizar su resultado?

+0

Oh, no. Olvidé decir que no estoy usando los resultados, en este caso solo estoy interesado en el recuento en sí. Repararé mi pregunta. –

+0

Ok, gracias. La razón por la que solo quiero contar es que estoy mostrando los registros relacionados del usuario como una insignia sobre una pestaña personalizada en la aplicación. Piensa en la insignia en los iconos de aplicaciones de correo electrónico. Así que recibo el recuento de favoritos u otros registros relacionados con el usuario registrado actualmente y no necesito los registros, solo el recuento. –

+0

me alegro de haber podido ayudar. –

Cuestiones relacionadas