<p>I've got C# code that accesses MySQL through ODBC.</p>

<p>It creates a transaction, does a few thousand insert commands, and then commits.
Now my question is how many "round trips", so to speak, happen against the DB server? I mean, does it simply transmit every insert command to the DB server, or does it cache/buffer them and send them in batches? And is this configurable in any way?</p>

It's hard to say without seeing your code, but I'm assuming you are executing the statements one at a time. So, you will get one round trip per insert statement.
In MSSql you can execute multiple inserts in a single statement:
```
```
cmd.ExecuteNonQuery "insert table values (1)  insert table values (2)"
```
```
So you can create a big string and execute it (I think it will have a limit), I assume this will work for MySQL.
Also in MSSQL you have a batch inserter (lookup "SqlBulkCopy"), in MySQL perhaps try
loading the data from a temp file
.