Estoy trabajando en un proyecto que requiere almacenar bitmaps en una tabla. Estos mapas de bits se usan en adaptadores de datos para mostrarse en listas. Esta tabla posiblemente puede contener más de 1000 imágenes. La razón por la que actualmente no guardo para archivar es por la rapidez con la que puedo leer y escribir imágenes en db.¿Cómo funciona un cursor SQLite internamente?
Lo que básicamente busco es comprender las limitaciones del cursor de SQLite. ¿Cómo se carga el cursor en la memoria? ¿Coloca los resultados de la consulta en la memoria o crea algún tipo de archivo de lectura/escritura temporal? No quiero encontrarme con problemas en los que la consulta de grandes conjuntos de datos hace que un dispositivo se quede sin memoria.
Hay [CursorWindow] (http://developer.android.com/reference/android/database/CursorWindow.html) y parece ser un usado para cargar solo partes de la consulta cada vez que 'moveToXyz'. Los datos deben venir directamente de la base de datos. – zapl
"Estoy trabajando en un proyecto que requiere almacenar mapas de bits en una tabla". - ick. "Esta tabla posiblemente puede contener más de 1000 imágenes". - más ick. "La razón por la que actualmente no estoy almacenando en el archivo es por la rapidez con que puedo leer y escribir imágenes en db". - por definición, un archivo será tan rápido o más rápido, ya que SQLite tiene que almacenar sus cosas en un archivo. – CommonsWare
zapl gracias por esa información. @CommonsWare No estoy seguro de lo que significa ick: P Creo que parece que debe ser rápido o más rápido para leer del archivo que db. No sé mucho sobre los cursores que no sea cómo usarlos ... ¿pero SQLite no optimiza mucho cómo lees de sus datos? Quiero decir que leer datos de imágenes del archivo varias veces parece ser mucho más lento que leerlos desde un cursor. – Jona