×

MySQL極具參考價值的性能(上)

  • 作者:新網(wǎng)
  • 來源:新網(wǎng)
  • 瀏覽:100
  • 2018-02-24 17:07:41

對于MySQL的最大連接數(shù),一次最好是發(fā)送5個請求到Web服務(wù)器。對Web服務(wù)器的5個請求中的一部分將用于CSS樣式表,圖像和腳本等資源。

 對于MySQL的最大連接數(shù),一次最好是發(fā)送5個請求到Web服務(wù)器。對Web服務(wù)器的5個請求中的一部分將用于CSS樣式表,圖像和腳本等資源。由于諸如瀏覽器緩存等原因,要獲得準(zhǔn)確的MySQL到Web服務(wù)器的請求比率可能很困難; 要想得到一個確切的數(shù)字,就需要分析Web服務(wù)器的日志文件。例如,可以手動訪問Apache的“access_log”日志文件,也可以通過 Analog 或 Webalizer 等實用程序訪問日志文件。

201508250958420fc9f.jpg
一旦有了對特定使用情況的準(zhǔn)確估計,請將該比率乘以Web服務(wù)器的最大連接數(shù)。例如,如果Web服務(wù)器配置為最多為256個客戶端提供服務(wù),MySQL請求與Web請求的比率為1/8,則最好將最大數(shù)據(jù)庫連接數(shù)設(shè)置為32。還要考慮留有安全余量,把這個數(shù)乘以2,得到最終的數(shù)量。只有在基礎(chǔ)設(shè)施支持的情況下,才能嘗試將數(shù)據(jù)庫連接數(shù)的最大數(shù)量與Web服務(wù)器的客戶端限制相匹配。在大多數(shù)情況下,最好保持接近32。
 
在Monyog中查看MySQL連接
 
在MySQL數(shù)據(jù)庫中,MySQL的最大并發(fā)連接數(shù)是存儲在全局變量max_connections中的。Monyog報告變量“ max_connections”作為當(dāng)前連接監(jiān)控組中的“最大允許”指標(biāo)。它還將該數(shù)字除以打開的連接數(shù),以生成連接使用百分比:
 
還有一個連接歷史記錄監(jiān)控,可以幫助計算最佳的最大并發(fā)連接數(shù)。它包括嘗試,拒絕和成功連接的數(shù)量。此外,允許達(dá)到的最大指標(biāo)的百分比顯示為一個進(jìn)度條,可以讓你快速評估服務(wù)器在過去達(dá)到的最大并發(fā)連接數(shù)。
 
在某些情況下,服務(wù)器在處理語句時會創(chuàng)建內(nèi)部臨時表。臨時表用于內(nèi)部操作如GROUP BY和distinct,還有一些ORDER BY查詢以及UNION和FROM子句(派生表)中的子查詢。這些都是在內(nèi)存中創(chuàng)建的內(nèi)存表。內(nèi)存中臨時表的最大大小由 tmp_table_size和 max_heap_table_size中較小的值確定。如果臨時表的大小超過這個閾值,則將其轉(zhuǎn)換為磁盤上的InnoDB或MyISAM表。此外,如果查詢涉及BLOB或TEXT列,而這些列不能存儲在內(nèi)存表中,臨時表總是直接指向磁盤。
 
這種轉(zhuǎn)換的代價很大,所以考慮增加 max_heap_table_size和 tmp_table_size變量的大小來幫助減少在磁盤上創(chuàng)建臨時表的數(shù)量。請記住,這將需要大量內(nèi)存,因為內(nèi)存中臨時表的大小是基于“最壞情況”的。例如,內(nèi)存表總是使用固定長度的列,所以字符列使用VARCHAR(255)。這可以使內(nèi)存中的臨時表比想象的要大得多—事實上,這比查詢表的總大小要大很多倍!當(dāng)增加 max_heap_table_size和 tmp_table_sizevariables的大小時,一定要監(jiān)視服務(wù)器的內(nèi)存使用情況,因為內(nèi)存中的臨時表可能會增加達(dá)到服務(wù)器內(nèi)存容量的風(fēng)險。
 

免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費咨詢獲取折扣

Loading