If you look behind the scenes at what the SQL engine is actually doing, you'll find that almost all the time it returns the records in convenient-sized chunks each time the client makes a request. It doesn't actually return "all of the data at once." If you're doing updates to the database, it is usually very important to do it in a transaction (express or implied), and to commit the transaction periodically ... e.g. AutoCommit.