我仍在爲使用InnoDB引擎的MySQL數據庫的性能而苦苦掙扎。尤其是數據插入的性能,輕微影響了運行查詢的性能。如何爲MySQL InnoDB(插入)性能優化?
我一直在搜索信息,how-to's等,但我發現大多數信息相當深刻的問題。我可以在網上找到一些關於「新手」的基本信息,這是性能優化的起點嗎? InnoDB優化的第一步,最重要的步驟是用較簡單的方式解釋。
我使用的是Windows平臺
我仍在爲使用InnoDB引擎的MySQL數據庫的性能而苦苦掙扎。尤其是數據插入的性能,輕微影響了運行查詢的性能。如何爲MySQL InnoDB(插入)性能優化?
我一直在搜索信息,how-to's等,但我發現大多數信息相當深刻的問題。我可以在網上找到一些關於「新手」的基本信息,這是性能優化的起點嗎? InnoDB優化的第一步,最重要的步驟是用較簡單的方式解釋。
我使用的是Windows平臺
我用來管理幾個非常大的MySQL數據庫(如,1TB +)。他們是巨大的,不可饒恕的野獸,無盡的食慾引起我的胃病。
我閱讀了關於MySQL Performance Tuning和innodb的所有內容。下面是對我有什麼幫助的總結:
最後,它只是試驗和貫穿東西的工作,直到你獲得足夠的知識,知道是什麼在起作用。
感謝您的詳細解答。我不會與MySQL進行非常廣泛的合作,但不幸的是,我沒有太多時間來徹底研究所有這些問題,但我現在有一些很好的起點 – waanders
@Kevin,您瞭解每個設置的工作原理?如果有[622個服務器變量](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html),那怎麼可能?並且該列表僅包含[特定於InnoDB]的一些變量(http://stackoverflow.com/a/29539807/632951)。 – Pacerier
我通讀了我使用的版本的所有文檔。現在是一段時間了,但是有很多。我們在幾年的時間裏建立了這個。 –
我沒有使用「淨,我用書。 :)
我用來學習MySQL的書是由Robert Sheldon和Geoff Moes編寫的Wrox Press的「Beginning MySQL」。第15章介紹了一些優化的基礎知識。我很喜歡這本書,並認爲這將是很好的閱讀,並且一直是我的第一參考。但它不是特定的存儲引擎。
我還有另一本書,apress的Pro MySQL,它涉及到更多關於特定存儲引擎的更多細節,但它也很難閱讀。儘管如此,仍然很好。
謝謝,也許我必須購買這本書。但對於大多數編程問題,我可以使用網絡,應該有一些信息... – waanders
對於新手:innodb_flush_log_at_trx_commit = 0,如果您在服務器崩潰的情況下可以承受最多1秒的工作。這是性能與可靠性的權衡,但它會極大地提高您的寫入性能。如果您能買得起電池供電的寫入緩存,請使用它。
特別是在Windows和寫入性能方面,由於MariaDB能夠更好地利用Windows上的異步IO,MariaDB 5.3可能比Oracle的庫存MySQL更好。我前一段時間寫了一個關於它的筆記here,在標準綜合基準測試中,它的性能比股票MySQL 5.5好得多(見註釋結尾處的圖片)。
然而,殺死性能的首要因素是磁盤沖洗。如果您放鬆使用* innodb_flush_log_at_trx_commit *參數的耐久性,則可以解決這個問題。您也可以考慮使用更大的事務,它們會減少磁盤刷新量。
http://www.mysqlperformanceblog.com/2011/03/18/video-the-innodb-storage-engine-for-mysql/ –
Lol @「profound」........... – Pacerier