TL; DR:如果您的論壇速度較慢,則TRANSACTION ISOLATION LEVEL很可能不是其原因,並將其設置爲其他任何內容,而不是默認值都無法提供幫助。設置innodb_flush_log_on_trx_commit = 2會有所幫助,但對崩潰具有持久性的後果。
長版本:
隔離級別不我在http://mysqldump.azundris.com/archives/77-Transactions-An-InnoDB-Tutorial.html寫了什麼交易。查看http://mysqldump.azundris.com/categories/32-InnoDB中的所有3篇InnoDB概述文章。
在任何情況下,系統必須能夠ROLLBACK,所以甚至沒有READ UNCOMMITTED的結果正在改變任何需要在寫入時完成的事情。
對於讀取事務,當讀取事務的導致視圖的撤消日誌記錄的鏈較長時,讀取速度較慢,因此READ UNCOMMITTED或READ COMMITTED可能比默認的REPEATABLE READ稍快。但是你必須記住,我們在這裏講的是內存訪問,而磁盤訪問會降低你的速度。
關於AUTOCOMMIT的問題:這將使每個寫入語句與磁盤同步。如果你一直在使用之前MyISAM和那個時候還算不錯,你可能想在你的my.cnf文件配置
[mysqld]
innodb_flush_log_on_trx_commit = 2
並重新啓動服務器。
這將使提交從mysqld寫入文件系統緩衝區緩存,但延遲將文件系統緩衝區緩存刷新到磁盤,以便每秒只發生一次。你不會失去有關mysqld崩潰的任何數據,但是你可能會在硬件崩潰時丟失高達1秒的寫入數據。即使在硬件崩潰之後,InnoDB也會自動恢復,即使它不是全ACID,它的行爲仍然比MyISAM更好。如果沒有這個設置,它將比AUTOCOMMIT快得多。