MySQL極具參考價值的性能(上)
- 作者:新網
- 來源:新網
- 瀏覽:100
- 2018-02-24 17:07:41
對于MySQL的最大連接數,一次最好是發(fā)送5個請求到Web服務器。對Web服務器的5個請求中的一部分將用于CSS樣式表,圖像和腳本等資源。
對于MySQL的最大連接數,一次最好是發(fā)送5個請求到Web服務器。對Web服務器的5個請求中的一部分將用于CSS樣式表,圖像和腳本等資源。由于諸如瀏覽器緩存等原因,要獲得準確的MySQL到Web服務器的請求比率可能很困難; 要想得到一個確切的數字,就需要分析Web服務器的日志文件。例如,可以手動訪問Apache的“access_log”日志文件,也可以通過 Analog 或 Webalizer 等實用程序訪問日志文件。
一旦有了對特定使用情況的準確估計,請將該比率乘以Web服務器的最大連接數。例如,如果Web
服務器配置為最多為256個客戶端提供服務,MySQL請求與Web請求的比率為1/8,則最好將最大
數據庫連接數設置為32。還要考慮留有安全余量,把這個數乘以2,得到最終的數量。只有在基礎設施支持的情況下,才能嘗試將數據庫連接數的最大數量與Web服務器的客戶端限制相匹配。在大多數情況下,最好保持接近32。
在Monyog中查看MySQL連接
在MySQL數據庫中,MySQL的最大并發(fā)連接數是存儲在全局變量max_connections中的。Monyog報告變量“ max_connections”作為當前連接監(jiān)控組中的“最大允許”指標。它還將該數字除以打開的連接數,以生成連接使用百分比:
還有一個連接歷史記錄監(jiān)控,可以幫助計算最佳的最大并發(fā)連接數。它包括嘗試,拒絕和成功連接的數量。此外,允許達到的最大指標的百分比顯示為一個進度條,可以讓你快速評估服務器在過去達到的最大并發(fā)連接數。
在某些情況下,服務器在處理語句時會創(chuàng)建內部臨時表。臨時表用于內部操作如GROUP BY和distinct,還有一些ORDER BY查詢以及UNION和FROM子句(派生表)中的子查詢。這些都是在內存中創(chuàng)建的內存表。內存中臨時表的最大大小由 tmp_table_size和 max_heap_table_size中較小的值確定。如果臨時表的大小超過這個閾值,則將其轉換為磁盤上的InnoDB或MyISAM表。此外,如果查詢涉及BLOB或TEXT列,而這些列不能存儲在內存表中,臨時表總是直接指向磁盤。
這種轉換的代價很大,所以考慮增加 max_heap_table_size和 tmp_table_size變量的大小來幫助減少在磁盤上創(chuàng)建臨時表的數量。請記住,這將需要大量內存,因為內存中臨時表的大小是基于“最壞情況”的。例如,內存表總是使用固定長度的列,所以字符列使用VARCHAR(255)。這可以使內存中的臨時表比想象的要大得多—事實上,這比查詢表的總大小要大很多倍!當增加 max_heap_table_size和 tmp_table_sizevariables的大小時,一定要監(jiān)視服務器的內存使用情況,因為內存中的臨時表可能會增加達到
服務器內存容量的風險。
免責聲明:本文內容由互聯網用戶自發(fā)貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發(fā)現本社區(qū)中有涉嫌抄襲的內容,請發(fā)送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。