Hi, I'm writing a simple todo app (for the fun of it, not for production). The app is pretty much a big UITableView displaying entries from a database. For educational purposes, I do not want to use Core Data but sqlite3 directly. When I display the table view, should I: read all database entries into a big array when the app starts (very inefficient!) only load data for visible rows (i.e. rows 361-372) from the database and reload those values when the user scrolls (using scrolling cursors as described here) ? I'd really like approach 2 but how practical is it (especially during fast-scrolling scenarios)?