成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

一次生產(chǎn)核心表Optimize table的操作經(jīng)歷

IT那活兒 / 4321人閱讀
一次生產(chǎn)核心表Optimize table的操作經(jīng)歷


前  言 
 
系統(tǒng)運(yùn)行了一年多,有幾張表特別大。前期經(jīng)過(guò)了一些測(cè)試,發(fā)現(xiàn)使用Optimize Table命令能夠回收空間,而且能夠在線操作,于是決定在晚上找閑時(shí)操作一下。


前期測(cè)試


在前期我們對(duì)這個(gè)操作進(jìn)行了詳盡的測(cè)試。包括回收的方式,回收的速度,以及是否產(chǎn)生鎖等情況。我們測(cè)試的方法是找到一張表,循環(huán)刪除若干條記錄,然后進(jìn)行回收,在回收期間執(zhí)行了一個(gè)循環(huán)更新的腳本,觀察更新過(guò)程中是否出現(xiàn)鎖的情況。
而我們基于測(cè)試的結(jié)果得出的結(jié)論如下:
  • 通過(guò)測(cè)試發(fā)現(xiàn)對(duì)大表進(jìn)行Optimize Table不會(huì)阻塞DML語(yǔ)句,它只會(huì)在文件發(fā)生切換的時(shí)候短暫鎖表。

  • 表上索引很多的情況,執(zhí)行Optimize Table會(huì)很慢,建議評(píng)估表空間回收后的大小,如果回收之后表變得較小,建議刪除索引之后進(jìn)行操作。通過(guò)測(cè)試刪除索引后速度能快一倍。

  • 在執(zhí)行optimizer table的時(shí)候,從庫(kù)會(huì)一直延遲,直到主庫(kù)完成操作,從庫(kù)才會(huì)開(kāi)始操作optimizer table。


正式操作


到了正式操作的時(shí)候,我們按照測(cè)試的結(jié)果進(jìn)行執(zhí)行。前期都較為順利。大概在操作了1個(gè)小時(shí)之后,突然出現(xiàn)監(jiān)控連接數(shù)告警。

可以看到當(dāng)前我們?cè)O(shè)置最大的Thread數(shù)量為3000。結(jié)果瞬間達(dá)到了最大值。

通過(guò)命令行進(jìn)入到數(shù)據(jù)庫(kù)。發(fā)現(xiàn)大量的查詢(xún)語(yǔ)句在等待Waiting for table metadata lock。

這些查詢(xún)語(yǔ)句也都在查詢(xún)我們操作Optimize Table的表。沒(méi)有任何辦法數(shù)據(jù)庫(kù)就這樣全局hang死了。不停的有連接上來(lái)執(zhí)行查詢(xún)操作,就要等待這個(gè)Waiting for table metadata lock。只能把源頭Optimize Table停掉。在停掉了之后,系統(tǒng)立馬恢復(fù)了正常。


問(wèn)題回溯


在這次操作的過(guò)程中,其實(shí)前期也有完整的測(cè)試,但是還是出現(xiàn)了這樣的情況,一個(gè)很大的原因是我們沒(méi)辦法模擬生產(chǎn)的負(fù)載情況。

應(yīng)用程序還有一個(gè)特點(diǎn),一旦堵塞了住了,就會(huì)不停的連接,這樣的程序其實(shí)就是一個(gè)瘋狂壓測(cè)程序。

所以做這樣的測(cè)試,需要我們思考到一點(diǎn):

我們需要捕捉到生產(chǎn)的流量,然后在測(cè)試的時(shí)候進(jìn)行回放重演。

那么怎么進(jìn)行流量的捕捉,一個(gè)簡(jiǎn)單的方法就是使用tcpdump捕捉3306端口的信息。然后使用解析出數(shù)據(jù),進(jìn)行重演。此類(lèi)方案比較多,比較令人熟悉的是tcpcopy這個(gè)解決方案。


問(wèn)題解決


那么最終的一個(gè)解決辦法就是,我們可以先在從庫(kù)上進(jìn)行操作。這里的操作需要加上sql_log_bin = 0不記錄binlog日志。等從庫(kù)回收之后,再找個(gè)機(jī)會(huì)進(jìn)行主從切換。


END


更多精彩干貨分享

點(diǎn)擊下方名片關(guān)注

IT那活兒

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129909.html

相關(guān)文章

  • 一次 Laravel 應(yīng)用性能調(diào)優(yōu)經(jīng)歷

    摘要:為了一探究竟,于是開(kāi)啟了這次應(yīng)用性能調(diào)優(yōu)之旅。使用即時(shí)編譯器和都能輕輕松松的讓你的應(yīng)用程序在不用做任何修改的情況下,直接提高或者更高的性能。 這是一份事后的總結(jié)。在經(jīng)歷了調(diào)優(yōu)過(guò)程踩的很多坑之后,我們最終完善并實(shí)施了初步的性能測(cè)試方案,通過(guò)真實(shí)的測(cè)試數(shù)據(jù)歸納出了 Laravel 開(kāi)發(fā)過(guò)程中的一些實(shí)踐技巧。 0x00 源起 最近有同事反饋 Laravel 寫(xiě)的應(yīng)用程序響應(yīng)有點(diǎn)慢、20幾個(gè)并...

    warkiz 評(píng)論0 收藏0
  • laravel artisan

    摘要:用法顯示當(dāng)前的幫助信息不輸出任何信息顯示當(dāng)前版本強(qiáng)制輸出禁用輸出不進(jìn)行交互運(yùn)行環(huán)境詳細(xì)輸出普通更加詳細(xì)可用命令全局命令清除編譯生成的文件,相當(dāng)于的反操作將站點(diǎn)設(shè)為維護(hù)狀態(tài)顯示當(dāng)前運(yùn)行環(huán)境來(lái)源于 laravel artisan 用法 $ php artisan Laravel Framework version 5.1.46 (LTS) Usage: command [options] ...

    Betta 評(píng)論0 收藏0
  • MySQL數(shù)據(jù)庫(kù)優(yōu)化

    摘要:具體來(lái)說(shuō),就是在寫(xiě)數(shù)據(jù)庫(kù)的時(shí)候同時(shí)寫(xiě)一份數(shù)據(jù)到緩存集群里,然后用緩存集群來(lái)承載大部分的讀請(qǐng)求。各種精妙的架構(gòu)設(shè)計(jì)因此一篇小文頂多具有拋磚引玉的效果但是數(shù)據(jù)庫(kù)優(yōu)化的思想差不多就這些了 前言 數(shù)據(jù)庫(kù)優(yōu)化一方面是找出系統(tǒng)的瓶頸,提高M(jìn)ySQL數(shù)據(jù)庫(kù)的整體性能,而另一方面需要合理的結(jié)構(gòu)設(shè)計(jì)和參數(shù)調(diào)整,以提高用戶的相應(yīng)速度,同時(shí)還要盡可能的節(jié)約系統(tǒng)資源,以便讓系統(tǒng)提供更大的負(fù)荷. 1. 優(yōu)化一覽...

    wangshijun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<