JDBC batching MySQL

From: Borut Bolčina (borut.bolcin..mail.com)
Date: Wed Oct 27 2010 - 09:00:33 UTC

  • Next message: Andrus Adamchik: "Re: JDBC batching MySQL"

    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