MySQL助理配置

基本配置你需要經(jīng)常察看以下3個(gè)配置項(xiàng)返帕。不然友鼻,可能很快就會(huì)出問題毡鉴。

innodb_buffer_pool_size:這是你安裝完InnoDB后第一個(gè)應(yīng)該設(shè)置的選項(xiàng)井厌。緩沖池是數(shù)據(jù)和索引緩存的地方:這個(gè)值越大越好,這能保證你在大多數(shù)的讀取操作時(shí)使用的是內(nèi)存而不是硬盤址晕。典型的值是5-6GB(8GB內(nèi)存)膀懈,20-25GB(32GB內(nèi)存),100-120GB(128GB內(nèi)存)谨垃。

innodb_log_file_size:這是redo日志的大小启搂。redo日志被用于確保寫操作快速而可靠并且在崩潰時(shí)恢復(fù)。一直到MySQL 5.1刘陶,它都難于調(diào)整胳赌,因?yàn)橐环矫婺阆胱屗髞?lái)提高性能,另一方面你想讓它更小來(lái)使得崩潰后更快恢復(fù)匙隔。幸運(yùn)的是從MySQL 5.5之后疑苫,崩潰恢復(fù)的性能的到了很大提升,這樣你就可以同時(shí)擁有較高的寫入性能和崩潰恢復(fù)性能了。一直到MySQL 5.5缀匕,redo日志的總尺寸被限定在4GB(默認(rèn)可以有2個(gè)log文件)纳决。這在MySQL 5.6里被提高碰逸。

一開始就把innodb_log_file_size設(shè)置成512M(這樣有1GB的redo日志)會(huì)使你有充裕的寫操作空間乡小。如果你知道你的應(yīng)用程序需要頻繁的寫入數(shù)據(jù)并且你使用的時(shí)MySQL 5.6,你可以一開始就把它這是成4G饵史。

max_connections:如果你經(jīng)陈樱看到‘Too many connections’錯(cuò)誤,是因?yàn)閙ax_connections的值太低了胳喷。這非常常見因?yàn)閼?yīng)用程序沒有正確的關(guān)閉數(shù)據(jù)庫(kù)連接湃番,你需要比默認(rèn)的151連接數(shù)更大的值。

max_connection值被設(shè)高了(例如1000或更高)之后一個(gè)主要缺陷是當(dāng)服務(wù)器運(yùn)行1000個(gè)或更高的活動(dòng)事務(wù)時(shí)會(huì)變的沒有響應(yīng)吭露。在應(yīng)用程序里使用連接池或者在MySQL里使用進(jìn)程池有助于解決這一問題吠撮。

InnoDB配置

從MySQL 5.5版本開始,InnoDB就是默認(rèn)的存儲(chǔ)引擎并且它比任何其他存儲(chǔ)引擎的使用都要多得多讲竿。那也是為什么它需要小心配置的原因泥兰。

innodb_file_per_table:這項(xiàng)設(shè)置告知InnoDB是否需要將所有表的數(shù)據(jù)和索引存放在共享表空間里(innodb_file_per_table = OFF) 或者為每張表的數(shù)據(jù)單獨(dú)放在一個(gè).ibd文件(innodb_file_per_table = ON)。每張表一個(gè)文件允許你在drop题禀、truncate或者rebuild表時(shí)回收磁盤空間鞋诗。這對(duì)于一些高級(jí)特性也是有必要的,比如數(shù)據(jù)壓縮迈嘹。但是它不會(huì)帶來(lái)任何性能收益削彬。你不想讓每張表一個(gè)文件的主要場(chǎng)景是:有非常多的表(比如10k+)。

MySQL 5.6中秀仲,這個(gè)屬性默認(rèn)值是ON融痛,因此大部分情況下你什么都不需要做。對(duì)于之前的版本你必須在加載數(shù)據(jù)之前將這個(gè)屬性設(shè)置為ON神僵,因?yàn)樗粚?duì)新創(chuàng)建的表有影響酌心。

innodb_flush_log_at_trx_commit:默認(rèn)值為1,表示InnoDB完全支持ACID特性挑豌。當(dāng)你的主要關(guān)注點(diǎn)是數(shù)據(jù)安全的時(shí)候這個(gè)值是最合適的安券,比如在一個(gè)主節(jié)點(diǎn)上。但是對(duì)于磁盤(讀寫)速度較慢的系統(tǒng)氓英,它會(huì)帶來(lái)很巨大的開銷侯勉,因?yàn)槊看螌⒏淖僨lush到redo日志都需要額外的fsyncs。將它的值設(shè)置為2會(huì)導(dǎo)致不太可靠(unreliable)因?yàn)樘峤坏氖聞?wù)僅僅每秒才flush一次到redo日志铝阐,但對(duì)于一些場(chǎng)景是可以接受的址貌,比如對(duì)于主節(jié)點(diǎn)的備份節(jié)點(diǎn)這個(gè)值是可以接受的。如果值為0速度就更快了,但在系統(tǒng)崩潰時(shí)可能丟失一些數(shù)據(jù):只適用于備份節(jié)點(diǎn)练对。

innodb_flush_method:這項(xiàng)配置決定了數(shù)據(jù)和日志寫入硬盤的方式遍蟋。一般來(lái)說(shuō),如果你有硬件RAID控制器螟凭,并且其獨(dú)立緩存采用write-back機(jī)制虚青,并有著電池?cái)嚯姳Wo(hù),那么應(yīng)該設(shè)置配置為O_DIRECT螺男;否則棒厘,大多數(shù)情況下應(yīng)將其設(shè)為fdatasync(默認(rèn)值)。sysbench是一個(gè)可以幫助你決定這個(gè)選項(xiàng)的好工具下隧。

innodb_log_buffer_size:這項(xiàng)配置決定了為尚未執(zhí)行的事務(wù)分配的緩存奢人。其默認(rèn)值(1MB)一般來(lái)說(shuō)已經(jīng)夠用了,但是如果你的事務(wù)中包含有二進(jìn)制大對(duì)象或者大文本字段的話淆院,這點(diǎn)緩存很快就會(huì)被填滿并觸發(fā)額外的I/O操作何乎。看看Innodb_log_waits狀態(tài)變量土辩,如果它不是0支救,增加innodb_log_buffer_size。

其他設(shè)置

query_cache_size:query cache(查詢緩存)是一個(gè)眾所周知的瓶頸脯燃,甚至在并發(fā)并不多的時(shí)候也是如此搂妻。 最佳選項(xiàng)是將其從一開始就停用,設(shè)置query_cache_size = 0(現(xiàn)在MySQL 5.6的默認(rèn)值)并利用其他方法加速查詢:優(yōu)化索引辕棚、增加拷貝分散負(fù)載或者啟用額外的緩存(比如memcache或redis)欲主。如果你已經(jīng)為你的應(yīng)用啟用了query cache并且還沒有發(fā)現(xiàn)任何問題,query cache可能對(duì)你有用逝嚎。這是如果你想停用它扁瓢,那就得小心了。

log_bin:如果你想讓數(shù)據(jù)庫(kù)服務(wù)器充當(dāng)主節(jié)點(diǎn)的備份節(jié)點(diǎn)补君,那么開啟二進(jìn)制日志是必須的引几。如果這么做了之后,還別忘了設(shè)置server_id為一個(gè)唯一的值挽铁。就算只有一個(gè)服務(wù)器伟桅,如果你想做基于時(shí)間點(diǎn)的數(shù)據(jù)恢復(fù),這(開啟二進(jìn)制日志)也是很有用的:從你最近的備份中恢復(fù)(全量備份)叽掘,并應(yīng)用二進(jìn)制日志中的修改(增量備份)楣铁。二進(jìn)制日志一旦創(chuàng)建就將永久保存。所以如果你不想讓磁盤空間耗盡更扁,你可以用 PURGE BINARY LOGS 來(lái)清除舊文件盖腕,或者設(shè)置expire_logs_days 來(lái)指定過(guò)多少天日志將被自動(dòng)清除赫冬。

記錄二進(jìn)制日志不是沒有開銷的,所以如果你在一個(gè)非主節(jié)點(diǎn)的復(fù)制節(jié)點(diǎn)上不需要它的話溃列,那么建議關(guān)閉這個(gè)選項(xiàng)劲厌。

skip_name_resolve:當(dāng)客戶端連接數(shù)據(jù)庫(kù)服務(wù)器時(shí),服務(wù)器會(huì)進(jìn)行主機(jī)名解析听隐,并且當(dāng)DNS很慢時(shí)补鼻,建立連接也會(huì)很慢。因此建議在啟動(dòng)服務(wù)器時(shí)關(guān)閉skip_name_resolve選項(xiàng)而不進(jìn)行DNS查找遵绰。唯一的局限是之后GRANT語(yǔ)句中只能使用IP地址了辽幌,因此在添加這項(xiàng)設(shè)置到一個(gè)已有系統(tǒng)中必須格外小心增淹。

總結(jié)

當(dāng)然還有其他的設(shè)置可以起作用椿访,取決于你的負(fù)載或硬件:在慢內(nèi)存和快磁盤、高并發(fā)和寫密集型負(fù)載情況下虑润,你將需要特殊的調(diào)整成玫。然而這里的目標(biāo)是使得你可以快速地獲得一個(gè)穩(wěn)健的MySQL配置,而不用花費(fèi)太多時(shí)間在調(diào)整一些無(wú)關(guān)緊要的MySQL設(shè)置或讀文檔找出哪些設(shè)置對(duì)你來(lái)說(shuō)很重要上拳喻。

技術(shù)分享:www.kaige123.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哭当,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子冗澈,更是在濱河造成了極大的恐慌钦勘,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亚亲,死亡現(xiàn)場(chǎng)離奇詭異彻采,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)捌归,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門肛响,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人惜索,你說(shuō)我怎么就攤上這事特笋。” “怎么了巾兆?”我有些...
    開封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵猎物,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我角塑,道長(zhǎng)蔫磨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任吉拳,我火速辦了婚禮质帅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己煤惩,他們只是感情好嫉嘀,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著魄揉,像睡著了一般剪侮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上洛退,一...
    開封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天瓣俯,我揣著相機(jī)與錄音,去河邊找鬼兵怯。 笑死彩匕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的媒区。 我是一名探鬼主播驼仪,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼袜漩!你這毒婦竟也來(lái)了绪爸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宙攻,失蹤者是張志新(化名)和其女友劉穎奠货,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體座掘,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡递惋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了雹顺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丹墨。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嬉愧,靈堂內(nèi)的尸體忽然破棺而出贩挣,到底是詐尸還是另有隱情,我是刑警寧澤没酣,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布王财,位于F島的核電站,受9級(jí)特大地震影響裕便,放射性物質(zhì)發(fā)生泄漏绒净。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一偿衰、第九天 我趴在偏房一處隱蔽的房頂上張望挂疆。 院中可真熱鬧改览,春花似錦、人聲如沸缤言。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)胆萧。三九已至庆揩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間跌穗,已是汗流浹背订晌。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蚌吸,地道東北人锈拨。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像套利,于是被迫代替她去往敵國(guó)和親推励。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鹤耍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容