乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      史上最全SQL優(yōu)化方案

       昵稱16619343 2019-01-31

      在進(jìn)行MySQL的優(yōu)化之前,必須要了解的就是MySQL的查詢過(guò)程,很多查詢優(yōu)化工作實(shí)際上就是遵循一些原則,讓MySQL的優(yōu)化器能夠按照預(yù)想的合理方式運(yùn)行而已。

      圖-MySQL查詢過(guò)程

      1.優(yōu)化的哲學(xué)

      注:優(yōu)化有風(fēng)險(xiǎn),涉足需謹(jǐn)慎

      a.優(yōu)化可能帶來(lái)的問(wèn)題?

      · 優(yōu)化不總是對(duì)一個(gè)單純的環(huán)境進(jìn)行,還很可能是一個(gè)復(fù)雜的已投產(chǎn)的系統(tǒng);

      · 優(yōu)化手段本來(lái)就有很大的風(fēng)險(xiǎn),只不過(guò)你沒(méi)能力意識(shí)到和預(yù)見(jiàn)到;

      · 任何的技術(shù)可以解決一個(gè)問(wèn)題,但必然存在帶來(lái)一個(gè)問(wèn)題的風(fēng)險(xiǎn);

      · 對(duì)于優(yōu)化來(lái)說(shuō)解決問(wèn)題而帶來(lái)的問(wèn)題,控制在可接受的范圍內(nèi)才是有成果;

      · 保持現(xiàn)狀或出現(xiàn)更差的情況都是失??!

      b.優(yōu)化的需求?

      · 穩(wěn)定性和業(yè)務(wù)可持續(xù)性,通常比性能更重要;

      · 優(yōu)化不可避免涉及到變更,變更就有風(fēng)險(xiǎn);

      · 優(yōu)化使性能變好,維持和變差是等概率事件;

      · 切記優(yōu)化,應(yīng)該是各部門(mén)協(xié)同,共同參與的工作,任何單一部門(mén)都不能對(duì)數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化!

      所以優(yōu)化工作,是由業(yè)務(wù)需要驅(qū)使的!

      c.優(yōu)化由誰(shuí)參與?

      在進(jìn)行數(shù)據(jù)庫(kù)優(yōu)化時(shí),應(yīng)由數(shù)據(jù)庫(kù)管理員、業(yè)務(wù)部門(mén)代表、應(yīng)用程序架構(gòu)師、應(yīng)用程序設(shè)計(jì)人員、應(yīng)用程序開(kāi)發(fā)人員、硬件及系統(tǒng)管理員、存儲(chǔ)管理員等,業(yè)務(wù)相關(guān)人員共同參與。

      2.優(yōu)化思路

      a.優(yōu)化什么?

      在數(shù)據(jù)庫(kù)優(yōu)化上有兩個(gè)主要方面:即安全與性能。

      · 安全->數(shù)據(jù)可持續(xù)性;

      · 性能->數(shù)據(jù)的高性能訪問(wèn)。

      b.優(yōu)化的范圍有哪些?

      存儲(chǔ)、主機(jī)和操作系統(tǒng)方面:

      · 主機(jī)架構(gòu)穩(wěn)定性;

      · I/O規(guī)劃及配置;

      · Swap交換分區(qū);

      · OS內(nèi)核參數(shù)和網(wǎng)絡(luò)問(wèn)題。

      應(yīng)用程序方面:

      · 應(yīng)用程序穩(wěn)定性;

      · SQL語(yǔ)句性能;

      · 串行訪問(wèn)資源;

      · 性能欠佳會(huì)話管理;

      · 這個(gè)應(yīng)用適不適合用MySQL。

      數(shù)據(jù)庫(kù)優(yōu)化方面:

      · 內(nèi)存;

      · 數(shù)據(jù)庫(kù)結(jié)構(gòu)(物理&邏輯);

      · 實(shí)例配置。

      說(shuō)明:不管是設(shè)計(jì)系統(tǒng)、定位問(wèn)題還是優(yōu)化,都可以按照這個(gè)順序執(zhí)行。

      c.優(yōu)化維度?

      數(shù)據(jù)庫(kù)優(yōu)化維度有四個(gè):

      硬件、系統(tǒng)配置、數(shù)據(jù)庫(kù)表結(jié)構(gòu)、SQL及索引。

      優(yōu)化選擇:

      · 優(yōu)化成本:硬件>系統(tǒng)配置>數(shù)據(jù)庫(kù)表結(jié)構(gòu)>SQL及索引。

      · 優(yōu)化效果:硬件<系統(tǒng)配置<數(shù)據(jù)庫(kù)表結(jié)構(gòu)<SQL及索引。

      3.優(yōu)化工具有啥?

      a.數(shù)據(jù)庫(kù)層面?

      檢查問(wèn)題常用工具:

      不常用但好用的工具:

      關(guān)于Zabbix參考:

      b.數(shù)據(jù)庫(kù)層面問(wèn)題解決思路?

      一般應(yīng)急調(diào)優(yōu)的思路:針對(duì)突然的業(yè)務(wù)辦理卡頓,無(wú)法進(jìn)行正常的業(yè)務(wù)處理,需要立馬解決的場(chǎng)景。

      常規(guī)調(diào)優(yōu)思路:針對(duì)業(yè)務(wù)周期性的卡頓,例如在每天10-11點(diǎn)業(yè)務(wù)特別慢,但是還能夠使用,過(guò)了這段時(shí)間就好了。

      c.系統(tǒng)層面?

      Cpu方面:

      內(nèi)存:

      IO設(shè)備(磁盤(pán)、網(wǎng)絡(luò)):

      vmstat命令說(shuō)明:

      iostat命令說(shuō)明:

      d.系統(tǒng)層面問(wèn)題解決辦法?

      你認(rèn)為到底負(fù)載高好,還是低好呢?在實(shí)際的生產(chǎn)中,一般認(rèn)為Cpu只要不超過(guò)90%都沒(méi)什么問(wèn)題。

      當(dāng)然不排除下面這些特殊情況:

      Cpu負(fù)載高,IO負(fù)載低:

      IO負(fù)載高,Cpu負(fù)載低:

      IO和cpu負(fù)載都很高:

      4.基礎(chǔ)優(yōu)化

      a.優(yōu)化思路?

      定位問(wèn)題點(diǎn)吮吸:硬件-->系統(tǒng)-->應(yīng)用-->數(shù)據(jù)庫(kù)-->架構(gòu)(高可用、讀寫(xiě)分離、分庫(kù)分表)。

      處理方向:明確優(yōu)化目標(biāo)、性能和安全的折中、防患未然。

      b.硬件優(yōu)化?

      主機(jī)方面:

      CPU的選擇:

      內(nèi)存的選擇:

      存儲(chǔ)方面:

      網(wǎng)絡(luò)設(shè)備方面:

      注意:以上這些規(guī)劃應(yīng)該在初始設(shè)計(jì)系統(tǒng)時(shí)就應(yīng)該考慮好。

      c.服務(wù)器硬件優(yōu)化?

      d.系統(tǒng)優(yōu)化?

      Cpu:

      內(nèi)存:

      SWAP:

      IO :

      Swap調(diào)整(不使用swap分區(qū))

      這個(gè)參數(shù)決定了Linux是傾向于使用swap,還是傾向于釋放文件系統(tǒng)cache。在內(nèi)存緊張的情況下,數(shù)值越低越傾向于釋放文件系統(tǒng)cache。

      當(dāng)然,這個(gè)參數(shù)只能減少使用swap的概率,并不能避免Linux使用swap。

      修改MySQL的配置參數(shù)innodb_flush_ method,開(kāi)啟O_DIRECT模式:

      這種情況下,InnoDB的buffer pool會(huì)直接繞過(guò)文件系統(tǒng)cache來(lái)訪問(wèn)磁盤(pán),但是redo log依舊會(huì)使用文件系統(tǒng)cache。

      值得注意的是,Redo log是覆寫(xiě)模式的,即使使用了文件系統(tǒng)的cache,也不會(huì)占用太多。

      IO調(diào)度策略:

      永久修改

      e.系統(tǒng)參數(shù)調(diào)整?

      Linux系統(tǒng)內(nèi)核參數(shù)優(yōu)化:

      用戶限制參數(shù)(MySQL可以不設(shè)置以下配置):

      f.應(yīng)用優(yōu)化?

      業(yè)務(wù)應(yīng)用和數(shù)據(jù)庫(kù)應(yīng)用獨(dú)立;

      防火墻:iptables、selinux等其他無(wú)用服務(wù)(關(guān)閉):

      安裝圖形界面的服務(wù)器不要啟動(dòng)圖形界面runlevel 3。

      另外,思考將來(lái)我們的業(yè)務(wù)是否真的需要MySQL,還是使用其他種類的數(shù)據(jù)庫(kù)。用數(shù)據(jù)庫(kù)的最高境界就是不用數(shù)據(jù)庫(kù)。

      5.數(shù)據(jù)庫(kù)優(yōu)化

      SQL優(yōu)化方向:執(zhí)行計(jì)劃、索引、SQL改寫(xiě)。

      架構(gòu)優(yōu)化方向:高可用架構(gòu)、高性能架構(gòu)、分庫(kù)分表。

      a.數(shù)據(jù)庫(kù)參數(shù)優(yōu)化?

      調(diào)整

      實(shí)例整體(高級(jí)優(yōu)化,擴(kuò)展):

      連接層(基礎(chǔ)優(yōu)化)

      設(shè)置合理的連接客戶和連接方式:

      SQL層(基礎(chǔ)優(yōu)化)

      b.存儲(chǔ)引擎層(innodb基礎(chǔ)優(yōu)化參數(shù))?

      歡迎工作一到五年的Java工程師朋友們加入Java填坑之路:860113481

      群內(nèi)提供免費(fèi)的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調(diào)優(yōu)、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個(gè)知識(shí)點(diǎn)的架構(gòu)資料)合理利用自己每一分每一秒的時(shí)間來(lái)學(xué)習(xí)提升自己,不要再用'沒(méi)有時(shí)間“來(lái)掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來(lái)的自己一個(gè)交代!

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多