<p>So I know that autocommit commits every sql statement, but do updates to the database go directly to the disk or do they remain on cache until flushed?  </p>

<p>I realize it's dependent on the database implementation.</p>

<p>Does auto-commit mean 
a) every statement is a complete transaction AND it goes straight to disk or 
b) every statement is a complete transaction and it may go to cache where it will be flushed later or it may go straight to disk</p>

<p>Clarification would be great.</p>

Auto-commit simply means that each statement is in its own transaction which commits immediately.  This is in contrast to the "normal" mode, where you must explicitly
```
BEGIN
```
a transaction and then
```
COMMIT
```
once you are done (usually after several statements).
The phrase "auto-commit" has nothing to do with disk access or caching.  As an implementation detail, most databases will write to disk on commit so as to avoid data loss, but this isn't mandatory in the spec.