Anybody have ideas on how to make changes to trx so that commits for a given database or table are NOT written to ibdata0 and ibdata1, just written directly to the database.
I am looking to have one INNODB database execute on fast RAMDISK while another operates on RAID10 long term storage. Since speed is paramount and transaction integrity is not needed for ramdisk tables, I want to disable logging for those tables on ramdisk.
I would love to leave normal logging in place for ibdata0 and ibdata1 but selectively disable it for a given database or tables (maybe based on table name).
gmouse, thanks for the answer, but there are some things that
I cannot make sense of in your comment.
ibdata0 is NOT the database itself. I am using innodb_file_per_table which means each table/index is put into a tablexxx.ibd file.
I cannot just turn off double write since it would affect ALL tables and databases and I am looking to have normal innodb operations on the RAID10 files, but Limited activity against the RAMDISK tables.
Of course, I can just let the RAMDISK behave normally, but the ibdata0 and ibdata1 log entries for the RAID10 tables would also get entries by the RAMDISK tables, thus negating the benefits of RAMDISK speed.
So my only option to start with is to place the ibdata0 and ibdata1 LOG files on the RAMDISK as well and just suffer the problems of losing transaction data on system crashes.
But by inserting some logic into the TRX commit code (maybe), I could just let INNODB operate normally but then it would not log for tables on RAMDISK.
Anybody got some ideas, since it is really a shame that innodb log/transaction files are not PER database or PER table.