亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL性能全面優(yōu)化方法參考,從CPU,文件系統(tǒng)選擇到mysql.cnf參數(shù)優(yōu)化

2024-07-25 19:08:10
字體:
供稿:網(wǎng)友

本文整理了一些MySQL的通用優(yōu)化方法,做個簡單的總結(jié)分享,旨在幫助那些沒有專職MySQL DBA的企業(yè)做好基本的優(yōu)化工作,至于具體的SQL優(yōu)化,大部分通過加適當?shù)乃饕纯蛇_到效果,更復(fù)雜的就需要具體分析了,可以參考本站的一些優(yōu)化案例或者聯(lián)系我們

1、硬件層相關(guān)優(yōu)化

1.1、CPU相關(guān)

在服務(wù)器的BIOS設(shè)置中,可調(diào)整下面的幾個配置,目的是發(fā)揮CPU最大性能,或者避免經(jīng)典的NUMA問題:

1、選擇Performance Per Watt Optimized(DAPC)模式,發(fā)揮CPU最大性能,跑DB這種通常需要高運算量的服務(wù)就不要考慮節(jié)電了;

2、關(guān)閉C1E和C States等選項,目的也是為了提升CPU效率;

3、Memory Frequency(內(nèi)存頻率)選擇Maximum Performance(最佳性能);

4、內(nèi)存設(shè)置菜單中,啟用Node Interleaving,避免NUMA問題;

1.2、磁盤I/O相關(guān)

下面幾個是按照IOPS性能提升的幅度排序,對于磁盤I/O可優(yōu)化的一些措施:

1、使用SSD或者PCIe SSD設(shè)備,至少獲得數(shù)百倍甚至萬倍的IOPS提升;

2、購置陣列卡同時配備CACHE及BBU模塊,可明顯提升IOPS(主要是指機械盤,SSD或PCIe SSD除外。同時需要定期檢查CACHE及BBU模塊的健康狀況,確保意外時不至于丟失數(shù)據(jù));

3、有陣列卡時,設(shè)置陣列寫策略為WB,甚至FORCE WB(若有雙電保護,或?qū)?shù)據(jù)安全性要求不是特別高的話),嚴禁使用WT策略。并且閉陣列預(yù)讀策略,基本上是雞肋,用處不大;

4、盡可能選用RAID-10,而非RAID-5;

5、使用機械盤的話,盡可能選擇高轉(zhuǎn)速的,例如選用15KRPM,而不是7.2KRPM的盤,不差幾個錢的;

2、系統(tǒng)層相關(guān)優(yōu)化

2.1、文件系統(tǒng)層優(yōu)化

在文件系統(tǒng)層,下面幾個措施可明顯提升IOPS性能:

1、使用deadline/noop這兩種I/O調(diào)度器,千萬別用cfq(它不適合跑DB類服務(wù));

2、使用xfs文件系統(tǒng),千萬別用ext3;ext4勉強可用,但業(yè)務(wù)量很大的話,則一定要用xfs;

3、文件系統(tǒng)mount參數(shù)中增加:noatime, nodiratime, nobarrier幾個選項(nobarrier是xfs文件系統(tǒng)特有的);

2.2、其他內(nèi)核參數(shù)優(yōu)化

針對關(guān)鍵內(nèi)核參數(shù)設(shè)定合適的值,目的是為了減少swap的傾向,并且讓內(nèi)存和磁盤I/O不會出現(xiàn)大幅波動,導(dǎo)致瞬間波峰負載:

1、將vm.swappiness設(shè)置為5-10左右即可,甚至設(shè)置為0(RHEL 7以上則慎重設(shè)置為0,除非你允許OOM kill發(fā)生),以降低使用SWAP的機會;

2、將vm.dirty_background_ratio設(shè)置為5-10,將vm.dirty_ratio設(shè)置為它的兩倍左右,以確保能持續(xù)將臟數(shù)據(jù)刷新到磁盤,避免瞬間I/O寫,產(chǎn)生嚴重等待(和MySQL中的innodb_max_dirty_pages_pct類似);

3、將net.ipv4.tcp_tw_recycle、net.ipv4.tcp_tw_reuse都設(shè)置為1,減少TIME_WAIT,提高TCP效率;

4、至于網(wǎng)傳的read_ahead_kb、nr_requests這兩個參數(shù),我經(jīng)過測試后,發(fā)現(xiàn)對讀寫混合為主的OLTP環(huán)境影響并不大(應(yīng)該是對讀敏感的場景更有效果),不過沒準是我測試方法有問題,可自行斟酌是否調(diào)整;

3、MySQL層相關(guān)優(yōu)化

3.1、關(guān)于版本選擇

官方版本我們稱為ORACLE MySQL,這個沒什么好說的,相信絕大多數(shù)人會選擇它。

我個人強烈建議選擇Percona分支版本,它是一個相對比較成熟的、優(yōu)秀的MySQL分支版本,在性能提升、可靠性、管理型方面做了不少改善。它和官方ORACLE MySQL版本基本完全兼容,并且性能大約有20%以上的提升,因此我優(yōu)先推薦它,我自己也從2008年一直以它為主。

另一個重要的分支版本是MariaDB,說MariaDB是分支版本其實已經(jīng)不太合適了,因為它的目標是取代ORACLE MySQL。它主要在原來的MySQL Server層做了大量的源碼級改進,也是一個非??煽康摹?yōu)秀的分支版本。但也由此產(chǎn)生了以GTID為代表的和官方版本無法兼容的新特性(MySQL 5.7開始,也支持GTID模式在線動態(tài)開啟或關(guān)閉了),也考慮到絕大多數(shù)人還是會跟著官方版本走,因此沒優(yōu)先推薦MariaDB。

3.2、關(guān)于最重要的參數(shù)選項調(diào)整建議

建議調(diào)整下面幾個關(guān)鍵參數(shù)以獲得較好的性能(可使用本站提供的my.cnf生成器生成配置文件模板):

1、選擇Percona或MariaDB版本的話,強烈建議啟用thread pool特性,可使得在高并發(fā)的情況下,性能不會發(fā)生大幅下降。此外,還有extra_port功能,非常實用, 關(guān)鍵時刻能救命的。還有另外一個重要特色是 QUERY_RESPONSE_TIME 功能,也能使我們對整體的SQL響應(yīng)時間分布有直觀感受;

2、設(shè)置default-storage-engine=InnoDB,也就是默認采用InnoDB引擎,強烈建議不要再使用MyISAM引擎了,InnoDB引擎絕對可以滿足99%以上的業(yè)務(wù)場景;

3、調(diào)整innodb_buffer_pool_size大小,如果是單實例且絕大多數(shù)是InnoDB引擎表的話,可考慮設(shè)置為物理內(nèi)存的50% ~ 70%左右;

4、根據(jù)實際需要設(shè)置innodb_flush_log_at_trx_commit、sync_binlog的值。如果要求數(shù)據(jù)不能丟失,那么兩個都設(shè)為1。如果允許丟失一點數(shù)據(jù),則可分別設(shè)為2和10。而如果完全不用care數(shù)據(jù)是否丟失的話(例如在slave上,反正大不了重做一次),則可都設(shè)為0。這三種設(shè)置值導(dǎo)致數(shù)據(jù)庫的性能受到影響程度分別是:高、中、低,也就是第一個會另數(shù)據(jù)庫最慢,最后一個則相反;

5、設(shè)置innodb_file_per_table = 1,使用獨立表空間,我實在是想不出來用共享表空間有什么好處了;

6、設(shè)置innodb_data_file_path = ibdata1:1G:autoextend,千萬不要用默認的10M,否則在有高并發(fā)事務(wù)時,會受到不小的影響;

7、設(shè)置innodb_log_file_size=256M,設(shè)置innodb_log_files_in_group=2,基本可滿足90%以上的場景;

8、設(shè)置long_query_time = 1,而在5.5版本以上,已經(jīng)可以設(shè)置為小于1了,建議設(shè)置為0.05(50毫秒),記錄那些執(zhí)行較慢的SQL,用于后續(xù)的分析排查;

9、根據(jù)業(yè)務(wù)實際需要,適當調(diào)整max_connection(最大連接數(shù))、max_connection_error(最大錯誤數(shù),建議設(shè)置為10萬以上,而open_files_limit、innodb_open_files、table_open_cache、table_definition_cache這幾個參數(shù)則可設(shè)為約10倍于max_connection的大??;

10、常見的誤區(qū)是把tmp_table_size和max_heap_table_size設(shè)置的比較大,曾經(jīng)見過設(shè)置為1G的,這2個選項是每個連接會話都會分配的,因此不要設(shè)置過大,否則容易導(dǎo)致OOM發(fā)生;其他的一些連接會話級選項例如:sort_buffer_size、join_buffer_size、read_buffer_size、read_rnd_buffer_size等,也需要注意不能設(shè)置過大;

11、由于已經(jīng)建議不再使用MyISAM引擎了,因此可以把key_buffer_size設(shè)置為32M左右,并且強烈建議關(guān)閉query cache功能;

3.3、關(guān)于Schema設(shè)計規(guī)范及SQL使用建議

下面列舉了幾個常見有助于提升MySQL效率的Schema設(shè)計規(guī)范及SQL使用建議:

1、所有的InnoDB表都設(shè)計一個無業(yè)務(wù)用途的自增列做主鍵,對于絕大多數(shù)場景都是如此,真正純只讀用InnoDB表的并不多,真如此的話還不如用TokuDB來得劃算;

2、字段長度滿足需求前提下,盡可能選擇長度小的。此外,字段屬性盡量都加上NOT NULL約束,可一定程度提高性能;

3、盡可能不使用TEXT/BLOB類型,確實需要的話,建議拆分到子表中,不要和主表放在一起,避免SELECT * 的時候讀性能太差。

4、讀取數(shù)據(jù)時,只選取所需要的列,不要每次都SELECT *,避免產(chǎn)生嚴重的隨機讀問題,尤其是讀到一些TEXT/BLOB列;

5、對一個VARCHAR(N)列創(chuàng)建索引時,通常取其50%(甚至更?。┳笥议L度創(chuàng)建前綴索引就足以滿足80%以上的查詢需求了,沒必要創(chuàng)建整列的全長度索引;

6、通常情況下,子查詢的性能比較差,建議改造成JOIN寫法;

7、多表聯(lián)接查詢時,關(guān)聯(lián)字段類型盡量一致,并且都要有索引;

8、多表連接查詢時,把結(jié)果集小的表(注意,這里是指過濾后的結(jié)果集,不一定是全表數(shù)據(jù)量小的)作為驅(qū)動表;

9、多表聯(lián)接并且有排序時,排序字段必須是驅(qū)動表里的,否則排序列無法用到索引;

10、多用復(fù)合索引,少用多個獨立索引,尤其是一些基數(shù)(Cardinality)太?。ū热缯f,該列的唯一值總數(shù)少于255)的列就不要創(chuàng)建獨立索引了;

11、類似分頁功能的SQL,建議先用主鍵關(guān)聯(lián),然后返回結(jié)果集,效率會高很多;

3.4、其他建議

關(guān)于MySQL的管理維護的其他建議有:

1、通常地,單表物理大小不超過10GB,單表行數(shù)不超過1億條,行平均長度不超過8KB,如果機器性能足夠,這些數(shù)據(jù)量MySQL是完全能處理的過來的,不用擔心性能問題,這么建議主要是考慮ONLINE DDL的代價較高;

2、不用太擔心mysqld進程占用太多內(nèi)存,只要不發(fā)生OOM kill和用到大量的SWAP都還好;

3、在以往,單機上跑多實例的目的是能最大化利用計算資源,如果單實例已經(jīng)能耗盡大部分計算資源的話,就沒必要再跑多實例了;

4、定期使用pt-duplicate-key-checker檢查并刪除重復(fù)的索引。定期使用pt-index-usage工具檢查并刪除使用頻率很低的索引;

5、定期采集slow query log,用pt-query-digest工具進行分析,可結(jié)合Anemometer系統(tǒng)進行slow query管理以便分析slow query并進行后續(xù)優(yōu)化工作;

6、可使用pt-kill殺掉超長時間的SQL請求,Percona版本中有個選項 innodb_kill_idle_transaction 也可實現(xiàn)該功能;

7、使用pt-online-schema-change來完成大表的ONLINE DDL需求;

8、定期使用pt-table-checksum、pt-table-sync來檢查并修復(fù)mysql主從復(fù)制的數(shù)據(jù)差異;

這次的優(yōu)化參考,大部分情況下都介紹了適用的場景,如果你的應(yīng)用場景和本文描述的不太一樣,那么建議根據(jù)實際情況進行調(diào)整,而不是生搬硬套。


注:相關(guān)教程知識閱讀請移步到MYSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
亚洲人成电影网| 蜜桃成人av| 91精品久久久久久粉嫩| 香蕉视频亚洲一级| 另类国产ts人妖高潮视频| 亚洲精品资源| 91精品啪在线观看国产60岁| 国产深夜男女无套内射| 一本大道久久a久久综合婷婷| 蜜桃福利午夜精品一区| 韩国无码av片在线观看网站| metart日本精品嫩模| 日韩美女一区| 天堂在线视频播放| 欧美sss在线视频| 亚洲一级一区| 国产精品美女一区二区在线观看| 浓精h攵女乱爱av| 中文字幕av一区二区三区谷原希美| 欧美大片网址| 亚洲国产av一区| 欧美日韩日本国产亚洲在线| av美女在线观看| 无码日韩人妻精品久久蜜桃| 女色窝人体色77777| 国产va在线| 日韩精品伦理第一区| 美国十次了思思久久精品导航| 最近的中文字幕在线看视频| 亚洲成人在线视频网站| 日韩电影免费在线看| 一级欧美一级日韩| 成人3d动漫网站| 久久人人爽人人爽爽久久| 欧美日韩国产在线播放| 成人免费看片载| 亚洲一二区视频| 亚洲欧美综合一区| 人妻无码视频一区二区三区| 亚洲福中文字幕伊人影院| 精品国产精品国产偷麻豆| 肉色欧美久久久久久久免费看| 成人影院久久久久久影院| 亚洲一区二区三区成人在线视频精品| 欧美日韩性生活| 国产成人一区三区| 性感美女视频一二三| 国产精品日本欧美一区二区三区| 麻豆一二三区精品蜜桃| heyzo在线观看| 蜜桃传媒av| 日日干夜夜操s8| 欧美日韩亚洲91| 中文字幕在线观看不卡| 久久久国产精品黄毛片| jizz免费视频| 久久亚洲一区二区三区明星换脸| 色综合久久久久久| 韩国精品一区| 亚洲日韩欧美视频| 97超碰在线免费观看| 亚洲尤物视频在线| 国产v在线观看| 欧美写真视频一区| 日夜操在线视频| 日韩系列在线| 亚洲成人电视网| 精品视频97| av动漫在线看| 久久这里只有精品免费| 美媛馆国产精品一区二区| 91手机视频在线| 性xxxxbbbb| 手机在线免费看毛片| 亚洲va欧美va国产va天堂影院| 日韩国产第一页| 亚洲最新av在线网站| 国产xxxxx在线观看| 国产在亚洲线视频观看| 亚洲综合av网| 好吊日在线视频| 日韩中文字幕一区二区高清99| 日本亲与子乱a| 久久久久久久一区二区三区| 国产一区二区精品福利地址| 精品日韩美女| 天天色综合6| 色综合一区二区日本韩国亚洲| 欧美三级在线观看视频| 久久久久精彩视频| 全国男人的天堂网| 国产精品青草久久久久福利99| 久久精品—区二区三区舞蹈| 国产探花在线免费观看| 欧美日韩一二三四区| 9久草视频在线视频精品| 日韩一级在线免费观看| 欧美亚州在线观看| 亚洲av色香蕉一区二区三区| 欧美黄色三级| 日韩亚洲欧美中文在线| 成人18视频在线观看| 亚洲国产精品人人做人人爽| 91啦中文在线| 妖精视频一区二区三区免费观看| 日本一区二区在线免费观看| 麻豆免费看一区二区三区| 国产综合动作在线观看| 在线观看午夜看亚太视频| 国产精品黑丝在线播放| 国产乱色国产精品免费视频| 婷婷电影在线观看| 青青草手机在线视频| 三级av免费看| 国产日产欧美a一级在线| 久久久成人av毛片免费观看| 久久久免费毛片| 亚洲成人基地| 99精品视频免费观看| 欧美在线精品一区二区三区| 色老板在线视频| 男女啪啪无遮挡网站| 青青草综合视频| 精品九九久久| 玖玖在线播放| 免费国产h视频在线观看86| 天天色综合成人网| 18被视频免费观看视频| 午夜不卡一区| 色呦呦中文字幕| 久久国产视频网站| 久久精品99国产精品酒店日本| 国内激情视频在线观看| 免费在线观看成年人视频| 网曝91综合精品门事件在线| 国产日韩精品视频一区二区三区| 国产亚洲综合久久| 欧美亚视频在线中文字幕免费| 欧美日韩的一区二区| 日产精品一区| 亚洲国产美女视频| 一区二区三区日韩精品视频| 福利电影一区二区三区| 亚洲欧美国产一区二区三区| 1024精品一区二区三区| 含羞草www国产在线视频| 99国产精品99久久久久久粉嫩| 国产在线精品一区二区| 午夜久久久久久噜噜噜噜| 欧洲一区二区三区| 成人精品免费在线观看| 亚洲国产精品人人做人人爽| 中文字幕视频二区| 99精品在免费线中文字幕网站一区| 午夜在线观看视频| 一区二区日韩精品| 浪潮av一区| www.99色.com| 国产永久精品大片wwwapp| 好吊视频一区二区三区| 国内精品福利视频| 91色乱码一区二区三区| 韩国欧美一区二区| 99热手机在线| 91在线视频成人| 成人在线免费播放视频| 色综合一区二区日本韩国亚洲| 欧美国产精品va在线观看| 伊人222成人综合网| 国产一区在线视频| 日本在线视频观看| 91亚洲男人天堂| www.日本久久久久com.| 久久av无码精品人妻系列试探| 欧美激情亚洲国产| 妺妺窝人体色WWW精品| 色先锋av男人资源先锋影院| 欧美成人高清手机在线视频| 色婷婷久久一区二区三区麻豆| 久久久亚洲天堂| 亚洲伊人伊成久久人综合网| 亚洲mv大片欧洲mv大片| 熟妇人妻av无码一区二区三区| 精品欧美黑人一区二区三区| 中文在线中文字幕| 亚洲三级精品| 亚洲色偷精品一区二区三区| 美女免费免费看网站| 久久久国产精品视频| 蜜桃免费在线| 色婷婷综合久久久久中文| jizzjizz日本少妇| 加勒比中文字幕精品| 中文字幕久精品免| 久久九九久精品国产免费直播| 国产精品一区二区免费视频| 久久久久久久久久一区二区| 亚洲精品高清视频| 亚洲欧美国产77777| 亚洲欧美电影院| 2022国产麻豆剧果冻传媒剧情| 欧洲av一区二区| 四虎精品视频| 色喇叭免费久久综合网| 亚洲精品国产91| 日韩av午夜在线观看| 一个人在线视频免费观看www| 成人精品在线看| 免费白浆视频| 成人毛片在线播放| 国产中文字幕第一页| 国产日产亚洲精品| 欧美性狂猛xxxxxbbbbb| 精品久久久久久久久久久久久| 最新国产精品视频| 无码h黄肉3d动漫在线观看| 香蕉视频官网在线观看日本一区二区| 日韩欧美aⅴ综合网站发布| 日韩欧美在线一区二区三区| 992tv成人免费视频| 一区二区视频免费在线观看| 北岛玲一区二区三区四区| 在线播放av更多| 精品国产乱码久久久久久浪潮| 久久久久久久久久99| 国产丝袜在线播放| 中文字幕欧美一区二区| 日韩欧美高清在线观看| 国产亚洲毛片在线| 成人午夜视频免费在线观看| 99精品桃花视频在线观看| 丁香六月婷婷综合| 浮力国产第一页| 看亚洲a级一级毛片| 国产婷婷97碰碰久久人人蜜臀| 天天爽天天爽天天爽| 欧美xxxxb| 日本视频在线观看一区二区三区| 老司机午夜在线视频| 中文字幕亚洲欧美| 欧美激情综合色综合啪啪五月| 成人做爽爽免费视频| 影音先锋男人看片资源站| 午夜美女福利视频| 国产三级一区二区| 91干在线观看| 最近久乱中文字幕| 欧美精品videossex变态| 国产成人精品亚洲午夜麻豆| 国产成人久久精品一区二区三区| 精品国产不卡一区二区三区| 国产精品人妻一区二区三区| 久久久久国产精品区片区无码| 涩涩视频免费观看| 欧美色图一区二区三区| 成人在线免费公开观看视频| 欧美激情视频网站| 一区二区日韩在线观看| 男人天堂2020| 色狠狠av一区二区三区| 欧美精品乱人伦久久久久久| 日本亚洲最大的色成网站www| 久久99精品国产麻豆婷婷洗澡| 97在线中文字幕| 97精品国产aⅴ7777| 久久av国产紧身裤| 日本视频一区二区不卡| 99久久亚洲精品日本无码| 中文字幕精品综合| 久久天天久久| 中文字幕第一页在线播放| 国产一区二区波多野结衣| 精品视频一区三区九区| 99久久精品一区| 亚洲国产日韩在线| 少妇献身老头系列| 一区二区三区免费看| 青青在线观看视频中文字| 日本色综合中文字幕| 亚洲成人av一区二区| 九色porn| 免费人成在线观看视频播放| 亚洲精品成人a在线观看| 白嫩白嫩国产精品| 在线观看视频网站你懂得| 日本一区中文字幕| 国产一区香蕉久久| 亚洲精品成人久久电影| 色偷偷噜噜噜亚洲男人的天堂| 91麻豆精品国产91久久久久| 国产一级粉嫩xxxx| 黄色免费在线观看| 二人午夜免费观看在线视频| 中文字幕免费精品一区| 色欧美片视频在线观看在线视频| 妺妺窝人体色www在线观看| 小嫩嫩精品导航| 香蕉在线观看视频| 日韩在线不卡视频| 国产精品人人人人| 中文字幕有码在线| 中文字幕在线视频一区二区三区| 欧美激情网站在线观看| 欧美成熟视频| 免费欧美一级片| 欧美一级黄色带| 久久久午夜精品理论片中文字幕| 91丝袜美腿高跟国产极品老师| 狠狠操视频网| 国产剧情演绎av| 男人日女人视频网站| 色婷婷综合久久久久中文| 三级久久三级久久| 成人在线播放视频| 日本视频在线观看一区二区三区| 色欧美乱欧美15图片| 亚洲人一区二区| 朝桐光av一区二区三区| 黄色a级三级三级三级| 中文字幕乱码人妻综合二区三区| 波多野结衣在线观看一区二区三区| 亚洲精品视频在线观看视频| 亚洲精品中文字| 欧美巨猛xxxx猛交黑人97人| 欧美激情一区| 欧美熟妇精品一区二区蜜桃视频| 伊人成综合网yiren22| 久久精品福利|