2012-07-08 50 views
-1

我有一個30 GB的大型mysql數據庫,其中所有表使用innodb引擎。 幾乎所有這些空間都是由一個大型表格(大約25 GB)取得的,我用二進制格式存儲大型文本,但99%的查詢使用其他較小的表格。mysql/innodb數據庫大小如何影響性能?

我的服務器有16 GB RAM,系統內存非常短,總是使用交換並給我的用戶帶來很大的痛苦。我的innodb_pool_buffer_size設置爲6G

我正在考慮通過將這些文本從數據庫移動到文件系統來解決此性能問題。

如果大多數查詢不使用這個大表,將25 GB的文本移動到文件系統會解決這個問題嗎?數據庫大小是否會影響服務器性能,即使最大innodb表不用於查詢太多?

+0

你使用'innodb_file_per_table'選項嗎? – raina77ow 2012-07-08 19:41:59

+0

我同意這將是一個更好的系統。由於25G表的干擾,SilverLight應該將其打開,因爲其他池可能運行緩慢。 – 2012-07-08 19:49:17

回答

3

您的問題中根本沒有足夠的信息來提供答案。

在爲您的問題應用可行的解決方案之前,您需要採取系統的方法來找到問題。否則,你正在開具隨機藥物,用於未知的疾病。你可能會讓問題變得更糟,因爲要讓它變得更好,或者沒有效果。

從慢速查詢開始,運行EXPLAIN,看看他們在做什麼。確保您的表格已正確編制索引以改善這些查詢(如果尚未)。然後,如果你仍然堅持,發佈最慢的查詢,並輸出EXPLAIN作爲一個新問題,你會得到更多有用的答案。

+0

+1是的,你需要一個系統的方法。如果你的系統內存非常短,交換或分頁太多,你可能需要增加額外的內存,或考慮降低'inno_pool_buffer_size'來釋放內存用於其他目的。除了運行MySQL之外,你的服務器還有什麼功能? – HeatfanJohn 2012-07-08 19:53:34

0

我完全同意Flimzy的觀點,您需要仔細檢查數據庫的使用方式,如果您需要優化它的幫助,則需要更多信息。

但是,我可以回答你提出的兩個問題。在99.9%的情況下,遷移到基於文件的系統並不比MySQL好。 MySQL有更好的方法來排序,排序和選擇標準文件系統的數據。基本上,任何操作系統在將大量文件保存在單個目錄中都非常糟糕,並且I/O和硬盤驅動器的延遲時間將簡單地通過屋頂。
對第二個問題:不,數據庫/表大小不必影響服務器性能。我有一個145 GiB的InnoDB表(授予它,它在一個SSD上),它被嚴重使用,沒有我的網站受到重創。 Ole Flimzy說,你將不得不優化你的SQL服務器,表格設計和索引,然後查詢最佳性能。

相關問題