Hello,
in another thred Andrus suggested to have a look at current support for
MySQL batching.
According to:
- http://bbish.net/htmls/mysql/news.html (Changes in MySQL Connector/J
5.1.3)
- http://www.jroller.com/mmatthews/entry/speeding_up_batch_inserts_for(bug
corrected in connectorJ 5.1.8)
the batching is supported.
I added
rewriteBatchedStatements=true
to conection string and in the modeller I set the
Custom Adapter to org.apache.cayenne.dba.mysql.MySQLAdapter
and in the code I initialized the adapter with
DataDomain dataChannel = (DataDomain) dataContext.getChannel();
DataNode dataNode = dataChannel.getNode("MapsNode");
MySQLAdapter mySQLAdapter = (MySQLAdapter) dataNode.getAdapter();
mySQLAdapter.setSupportsBatchUpdates(true);
Then I tried different scenarios: datacontext.commit() on every 100 changed
objects and commit after all (4000) objects were added to a datacontext.
I was running my test with connectorJ 5.1.12 and sadly the batch insert does
not work. I was watching the MySQL server's general query log for definite
confirmation what the database is getting from the driver.
Maybe there is something else to set-up? I really wish this would work, as
performance gains are enormous.
Cheers,
Borut
This archive was generated by hypermail 2.0.0 : Wed Oct 27 2010 - 09:01:07 UTC