内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

MySQL極具參考價(jià)值的性能調(diào)優(yōu)技巧

萬(wàn)圣節(jié)已經(jīng)過(guò)去很久了,該是把注意力集中在即將到來(lái)的假日季節(jié)的時(shí)候了。首先是感恩節(jié),接著就是黑色星期五和網(wǎng)絡(luò)星期一,最終在圣誕節(jié)/節(jié)禮周(從12月26日的節(jié)禮日開(kāi)始,到12月31日的除夕結(jié)束為期六天或更長(zhǎng)時(shí)間。這個(gè)詞是由零售業(yè)在2000年代中期左右發(fā)明的,試圖延長(zhǎng)他們的節(jié)禮日銷售)達(dá)到購(gòu)物高潮。對(duì)于企業(yè)主來(lái)說(shuō),一年的這個(gè)時(shí)候標(biāo)志著人們期待已久的年底獲利了結(jié)。對(duì)于一些DBA來(lái)說(shuō),它會(huì)帶來(lái)恐懼,不安,甚至是不眠之夜,他們要努力使系統(tǒng)重新上線。

目前成都創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、阜新網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

值得慶幸是,情況并非如此。通過(guò)對(duì)MySQL性能變量做一些主動(dòng)調(diào)整,可以使數(shù)據(jù)庫(kù)服務(wù)器免受購(gòu)物旺季帶來(lái)的需求增加的沖擊。

技巧#1:確定MySQL的連接數(shù)

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

一旦有了對(duì)特定使用情況的準(zhǔn)確估計(jì),請(qǐng)將該比率乘以Web服務(wù)器的連接數(shù)。例如,如果Web服務(wù)器配置為最多為256個(gè)客戶端提供服務(wù),MySQL請(qǐng)求與Web請(qǐng)求的比率為1/8,則最好將數(shù)據(jù)庫(kù)連接數(shù)設(shè)置為32。還要考慮留有安全余量,把這個(gè)數(shù)乘以2,得到最終的數(shù)量。只有在基礎(chǔ)設(shè)施支持的情況下,才能嘗試將數(shù)據(jù)庫(kù)連接數(shù)的數(shù)量與Web服務(wù)器的客戶端限制相匹配。在大多數(shù)情況下,最好保持接近32。

在Monyog中查看MySQL連接

在MySQL數(shù)據(jù)庫(kù)中,MySQL的并發(fā)連接數(shù)是存儲(chǔ)在全局變量max_connections中的。Monyog報(bào)告變量“ max_connections”作為當(dāng)前連接監(jiān)控組中的“允許”指標(biāo)。它還將該數(shù)字除以打開(kāi)的連接數(shù),以生成連接使用百分比:

還有一個(gè)連接歷史記錄監(jiān)控,可以幫助計(jì)算的并發(fā)連接數(shù)。它包括嘗試,拒絕和成功連接的數(shù)量。此外,允許達(dá)到的指標(biāo)的百分比顯示為一個(gè)進(jìn)度條,可以讓你快速評(píng)估服務(wù)器在過(guò)去達(dá)到的并發(fā)連接數(shù):

技巧#2:為臨時(shí)表分配足夠的內(nèi)存

在某些情況下,服務(wù)器在處理語(yǔ)句時(shí)會(huì)創(chuàng)建內(nèi)部臨時(shí)表。臨時(shí)表用于內(nèi)部操作如GROUP BY和distinct,還有一些ORDER BY查詢以及UNION和FROM子句(派生表)中的子查詢。這些都是在內(nèi)存中創(chuàng)建的內(nèi)存表。內(nèi)存中臨時(shí)表的大小由 tmp_table_size和 max_heap_table_size中較小的值確定。如果臨時(shí)表的大小超過(guò)這個(gè)閾值,則將其轉(zhuǎn)換為磁盤上的InnoDB或MyISAM表。此外,如果查詢涉及BLOB或TEXT列,而這些列不能存儲(chǔ)在內(nèi)存表中,臨時(shí)表總是直接指向磁盤。

這種轉(zhuǎn)換的代價(jià)很大,所以考慮增加 max_heap_table_size和 tmp_table_size變量的大小來(lái)幫助減少在磁盤上創(chuàng)建臨時(shí)表的數(shù)量。請(qǐng)記住,這將需要大量?jī)?nèi)存,因?yàn)閮?nèi)存中臨時(shí)表的大小是基于“最壞情況”的。例如,內(nèi)存表總是使用固定長(zhǎng)度的列,所以字符列使用VARCHAR(255)。這可以使內(nèi)存中的臨時(shí)表比想象的要大得多—事實(shí)上,這比查詢表的總大小要大很多倍!當(dāng)增加 max_heap_table_size和 tmp_table_sizevariables的大小時(shí),一定要監(jiān)視服務(wù)器的內(nèi)存使用情況,因?yàn)閮?nèi)存中的臨時(shí)表可能會(huì)增加達(dá)到服務(wù)器內(nèi)存容量的風(fēng)險(xiǎn)。

一般來(lái)說(shuō),32M到64M是建議值,從這兩個(gè)變量開(kāi)始并根據(jù)需要進(jìn)行調(diào)優(yōu)。

在Monyog中的臨時(shí)表監(jiān)測(cè)

臨時(shí)表的監(jiān)測(cè)是許多預(yù)定義的Monyog監(jiān)測(cè)之一。它提供了一些臨時(shí)表使用的指標(biāo),包括:

允許的值 :顯示 tmp_table_size服務(wù)器變量的值,它定義了在內(nèi)存中創(chuàng)建的臨時(shí)表的大小。與 max_heap_table_size一起,這個(gè)值定義了可以在內(nèi)存中創(chuàng)建的臨時(shí)表的大小。如果內(nèi)存臨時(shí)表大于此大小,則將其存儲(chǔ)在磁盤上。 內(nèi)存表的大小 :顯示 max_heap_table_size服務(wù)器變量的值,該值定義了顯式創(chuàng)建的MEMORY存儲(chǔ)引擎表的大小。 創(chuàng)建的臨時(shí)表總數(shù) :顯示 created_tmp_tables服務(wù)器變量的值,它定義了在內(nèi)存中創(chuàng)建的臨時(shí)表的數(shù)量。 在磁盤上創(chuàng)建的臨時(shí)表 :顯示 created_tmp_disk_tables服務(wù)器變量的值,該變量定義了在磁盤上創(chuàng)建的臨時(shí)表的數(shù)量。如果這個(gè)值很高,則應(yīng)該考慮增加 tmp_table_size和 max_heap_table_size的值,以便增加創(chuàng)建內(nèi)存臨時(shí)表的數(shù)量,從而減少在磁盤上創(chuàng)建臨時(shí)表的數(shù)量。 磁盤:總比率 :基于 created_tmp_disk_tables除以 created_tmp_tables的計(jì)算值。由于 tmp_table_size或 max_heap_table_size不足而在磁盤上創(chuàng)建的臨時(shí)表的百分比。Monyog將這個(gè)數(shù)字顯示為一個(gè)進(jìn)度條和百分比,以便快速確定有多少磁盤用于臨時(shí)表,而不是內(nèi)存。 趨勢(shì)圖可用于創(chuàng)建的總表,磁盤上創(chuàng)建的表和磁盤的總比值。這些讓我們看到了它們隨著時(shí)間的演變:

技巧#3:增加線程緩存大小

連接管理器線程處理服務(wù)器監(jiān)聽(tīng)的網(wǎng)絡(luò)接口上的客戶端連接請(qǐng)求。連接管理器線程將每個(gè)客戶端連接與專用于它的線程關(guān)聯(lián),該線程負(fù)責(zé)處理該連接的身份驗(yàn)證和所有請(qǐng)求處理。因此,線程和當(dāng)前連接的客戶端之間是一對(duì)一的比例。確保線程緩存足夠大以容納所有傳入請(qǐng)求是非常重要的。

MySQL提供了許多與連接線程相關(guān)的服務(wù)器變量:

線程緩存大小由 thread_cache_size系統(tǒng)變量決定。默認(rèn)值為0(無(wú)緩存),這將導(dǎo)致為每個(gè)新連接設(shè)置一個(gè)線程,并在連接終止時(shí)需要處理該線程。如果希望服務(wù)器每秒接收數(shù)百個(gè)連接請(qǐng)求,那么應(yīng)該將 thread_cache_size設(shè)置的足夠高,以便大多數(shù)新連接可以使用緩存線程??梢栽诜?wù)器啟動(dòng)或運(yùn)行時(shí)設(shè)置 max_connections的值。

還應(yīng)該監(jiān)視緩存中的線程數(shù)( Threads_cached)以及創(chuàng)建了多少個(gè)線程,因?yàn)闊o(wú)法從緩存中獲取線程( Threads_created)。關(guān)于后者,如果 Threads_created繼續(xù)以每分鐘多于幾個(gè)線程的增加,請(qǐng)考慮增加 thread_cache_size的值。

使用MySQL show status命令顯示MySQL的變量和狀態(tài)信息。這里有幾個(gè)例子:

SHOW GLOBAL STATUS LIKE \'%Threads_connected%\'; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Threads_connected | 2 | +-------------------+-------+ SHOW GLOBAL STATUS LIKE \'%Threads_running%\'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | Threads_running | 1 | +-----------------+-------+

Monyog線程緩存監(jiān)測(cè)

Monyog提供了一個(gè)監(jiān)控線程緩存的屏幕,名為“線程”。與MySQL線程相關(guān)的服務(wù)器變量映射到以下Monyog指標(biāo):

thread_cache_size:可以緩存的線程數(shù)。

Threads_cached:緩存中的線程數(shù)。

Threads_created:創(chuàng)建用于處理連接的線程.

Monyog線程屏幕還包括“線程緩存命中率”指標(biāo)。這是一個(gè)提示線程緩存命中率的指標(biāo)。如果值較低,則應(yīng)該考慮增加線程緩存。在狀態(tài)欄以百分比形式顯示該值;它的值越接近100%越好。

如果這些指標(biāo)的值等于或超過(guò)指定值,則可以將每一個(gè)指標(biāo)配置為發(fā)出警告和/或嚴(yán)重警報(bào)。

其他相關(guān)的服務(wù)器變量

除了上述指標(biāo)以外,還應(yīng)該監(jiān)控以下內(nèi)容:

InnoDB緩沖池大小 : InnoDB緩沖池大小在使用InnoDB的MySQL數(shù)據(jù)庫(kù)中起著至關(guān)重要的作用。緩沖池同時(shí)緩存數(shù)據(jù)和索引。它的值應(yīng)該盡可能的大,以確保數(shù)據(jù)庫(kù)使用內(nèi)存而不是硬盤驅(qū)動(dòng)器進(jìn)行讀取操作。 臨時(shí)表大小 : MySQL使用maxheaptablesize和tmptable_size中較小的一個(gè)來(lái)限制內(nèi)存中臨時(shí)表的大小。擁有較大的值可以幫助減少在磁盤上創(chuàng)建臨時(shí)表的數(shù)量,但也會(huì)增加服務(wù)器內(nèi)存容量的風(fēng)險(xiǎn),因?yàn)檫@個(gè)指標(biāo)適用于每個(gè)客戶端。一般來(lái)說(shuō),32M到64M是建議的值,從這兩個(gè)變量開(kāi)始并根據(jù)需要進(jìn)行調(diào)優(yōu)。 InnoDB日志緩沖區(qū)大小 : MySQL每次寫入日志文件時(shí),它都會(huì)利用可用于處理銷售數(shù)據(jù)的重要系統(tǒng)資源。因此,將InnoDB日志緩沖區(qū)大小設(shè)置為較大值才有意義。這樣,服務(wù)器在大型事務(wù)中寫入磁盤的次數(shù)就減少了,從而限度地減少了這些耗時(shí)的操作。64M是這個(gè)變量的一個(gè)很好的起點(diǎn)。 結(jié)論

雖然即便是的公司網(wǎng)站也會(huì)因宕機(jī)而遭受損失,但這種影響對(duì)于處理網(wǎng)上銷售的中小型企業(yè)尤其關(guān)鍵。根據(jù) 最近的一份調(diào)查報(bào)告 顯示,一分鐘的宕機(jī)導(dǎo)致企業(yè)平均損失約5000美元。不要讓你的業(yè)務(wù)成為那種統(tǒng)計(jì)數(shù)據(jù)(因?yàn)殄礄C(jī)造成的損失)的一部分。在假日繁忙之前,主動(dòng)調(diào)優(yōu)MySQL數(shù)據(jù)庫(kù)服務(wù)器(S)并收獲回報(bào)吧!

文章名稱:MySQL極具參考價(jià)值的性能調(diào)優(yōu)技巧
本文URL:http://m.rwnh.cn/article16/cgcogg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、靜態(tài)網(wǎng)站外貿(mào)建站、微信小程序、建站公司微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
白银市| 新竹市| 裕民县| 无棣县| 尖扎县| 长顺县| 沁水县| 巴林右旗| 上杭县| 临桂县| 阿克苏市| 德格县| 靖宇县| 中山市| 九龙县| 陕西省| 嘉定区| 乌拉特后旗| 屏东市| 栖霞市| 垫江县| 绵竹市| 左云县| 盐山县| 旌德县| 乌拉特前旗| 濮阳县| 井冈山市| 吉林市| 镇赉县| 呈贡县| 仁怀市| 蒲江县| 贞丰县| 西林县| 贡嘎县| 达孜县| 武威市| 都匀市| 历史| 城固县|