2014-01-30 44 views
0

我有一個MySQL數據庫,它運行在具有2GB RAM和500GB硬盤的專用Ubuntu服務器上。我很感激任何人都可以幫助精細調整數據庫以提高性能。增強功能需要影響數據庫的CRUD任務,包括過程調用和預定事件的性能。調整MySQL數據庫

我已經在網上做過關於這方面的搜索,並在各種網站上找到各種機制,工具等來完成這項工作。但是我需要知道如何正確升級MySQL數據庫本身的性能(例如SQL查詢的執行時間等),而無需使用任何第三方工具或軟件。下面列出了我擁有的數據庫配置。

MySQL version: 5.5 
Used storage engine: MyISAM 
Operating system: Ubuntu 12 
Hard disk capacity: 500GB 
RAM: 2GB 
Other: The database consists of Tables, Indexes, Stored Procedures, Scheduled Events and Views 

回答

2

您隻字未提,對此數據的細節,其分佈,您使用的負載類型,比例讀取到寫入,品種你的數據的查詢,您的查詢的複雜性,等等。這是調整過程中的一個重要部分,原因很簡單:

調整特定於您的數據和工作負載。

製作數據庫平臺(如MySQL)的傢伙非常重視確保默認設置足以滿足大多數用戶的需求。如果有一些簡單的途徑可以提高數據庫的性能,那麼已經在工廠上完成了。

另一方面,製作第三方工具的人編寫了讀取數據和日誌的代碼,以查找有關表,其內容和查詢的信息,並且該代碼能夠做出最佳猜測估計根據您的數據和工作量進行調整。它們並不完美,但是如果你不知道怎麼做,他們肯定會不得不手動做這些事情。

想到調整數據庫就像調整吉他一樣:首先您需要一個想法(標準調整?下降D?DADGAD?),然後對一個字符串進行小幅調整,然後對照您的預期的結果。一旦你獲得了最好的絃樂結果,你就可以進入下一個,並在那裏進行小的改變等。當你到達最後一個絃樂時,你可能已經調整了整個吉他的平衡,所以你可能不得不重新審視從一開始的設置進行微小的增量變化,直到整個樂隊完美演唱。

閱讀http://dev.mysql.com/doc/refman/5.5/en/server-parameters.html開始調試MySQL 5.5中最重要的「字符串」。有很多,但他們都不是特別困難的。

作爲一個切線,調整您的服務器遠離默認值可能會使您的性能提升5-10%。你會花更多的時間看看你的數據庫設計,數據類型和你正在使用的索引。通過做這種事情,你通常可以使性能提高50%-100%。

+0

感謝提示@Jeremy。如果我說關於數據庫的數據分佈,它如下所示。 - 數據庫與標準化和非標準化表相關。具有一對一,一對多,多對一和多對多的相關數據。 - 有82個表格(可以擴展)。 - 我已將此數據庫連接到Web應用程序。所以,會同時發生數據庫調用。 - 大多數查詢由複雜的關係組成,這些關係具有內部連接和外部連接,嵌套的select語句,循環(在存儲過程中),條件,字符編碼,類型轉換等。 –

0

您應該會發現http://www.mysqlcalculator.com/對初學者有幫助。

這將顯示一些關鍵的一般違約,並允許您 輸入自己的值由
顯示全局變量
所顯示的計算MySQL的最大內存使用量。

這隻會刮傷表面 - 而且會很有啓發性。

有沒有簡單的答案。