高清国产av一区二区三区_亚洲欧美日韩在线_无码熟妇人妻av在线影片免费_在线无码一级伊伊_爽好舒服高H自慰软件_亚洲熟女区偷拍区高清区_午夜福利影院啪啪_亚洲国产黄片在线播放_中文字幕日韩精品乐乐影院_久久国产亚洲日韩欧美精品

掃描二維碼關(guān)注

首頁 APP開發(fā)小程序開發(fā) 微信公眾號 網(wǎng)站建設(shè) 營銷推廣 經(jīng)典案列 產(chǎn)品服務(wù) 關(guān)于我們

“學(xué)習(xí)不僅是掌握知識”

向書本學(xué)習(xí),還要向?qū)嵺`學(xué)習(xí)、向生活學(xué)習(xí)。消化已有知識,
而且要力求有所發(fā)現(xiàn)、有所發(fā)明、有所創(chuàng)造

MySQL安裝后需要調(diào)整什么?

2019/3/16 10:48:36

MySQL安裝后需要調(diào)整什么?

面對MySQL的DBA或者做MySQL性能相關(guān)的工作的人,我最喜歡問的問題是,在MySQL服務(wù)器安裝后,需要調(diào)整什么,假設(shè)是以缺省的設(shè)置安裝的。

我很驚訝有非常多的人沒有合理的回答,很多的MySQL服務(wù)器都在缺省的配置下運(yùn)行。

盡管可以調(diào)整非常多的MySQL服務(wù)器變量,但是在通常情況下只有少數(shù)的變量是真正重要的。在設(shè)置完這些變量以后,其他變量的改動(dòng)通常只能帶來相對有限的性能改善。

key_buffer_size ---- 非常重要,如果使用MyISAM表。如果只使用MyISAM表,那么把它的值設(shè)置為可用內(nèi)存的30%到40%。恰當(dāng)?shù)拇笮∫蕾囁饕臄?shù)量、數(shù)據(jù)量和負(fù)載 ----記住MyISAM使用操作系統(tǒng)的cache去緩存數(shù)據(jù),所以也需要為它留出內(nèi)存,而且數(shù)據(jù)通常比索引要大很多。然而需要查看是否所有的 key_buffer總是在被使用 ---- key_buffer為4G而.MYI文件只有1G的情況并不罕見。這樣就有些浪費(fèi)了。如果只是使用很少的MyISAM表,希望它的值小一些,但是仍然至少要設(shè)成16到32M,用于臨時(shí)表(占用硬盤的)的索引。

innodb_buffer_pool_size ---- 非常重要,如果使用Innodb表。相對于MyISAM表而言,Innodb表對buffer size的大小更敏感。在處理大的數(shù)據(jù)集(data set)時(shí),使用缺省的key_buffer_size和innodb_buffer_pool_size,MyISAM可能正常工作,而Innodb可能就是慢得像爬一樣了。同時(shí)Innodb buffer pool緩存了數(shù)據(jù)和索引頁,因此不需要為操作系統(tǒng)的緩存留空間,在只用Innodb的數(shù)據(jù)庫服務(wù)器上,可以設(shè)成占內(nèi)存的70%到80%。上面 key_buffer的規(guī)則也同樣適用 ---- 如果只有小的數(shù)據(jù)集,而且也不會(huì)戲劇性地增大,那么不要把innodb_buffer_pool_size設(shè)得過大。因?yàn)榭梢愿玫厥褂枚嘤嗟膬?nèi)存。

innodb_additional_pool_size ---- 這個(gè)變量并不太影響性能,至少在有像樣的(decent)內(nèi)存分配的操作系統(tǒng)中是這樣。但是仍然需要至少設(shè)為20MB(有時(shí)候更大),是Innodb分配出來用于處理一些雜事的。

innodb_log_file_size ---- 對于以寫操作為主的負(fù)載(workload)非常重要,特別是數(shù)據(jù)集很大的時(shí)候。較大的值會(huì)提高性能,但增加恢復(fù)的時(shí)間。因此需要謹(jǐn)慎。我通常依據(jù)服務(wù)器的大?。╯erver size)設(shè)置為64M到512M。

innodb_log_buffer_size ---- 缺省值在中等數(shù)量的寫操作和短的事務(wù)的大多數(shù)負(fù)載情況下是夠用的。如果有大量的UPDATE或者大量地使用blob,可能需要增加它的值。不要把它的值設(shè)得過多,否則會(huì)浪費(fèi)內(nèi)存--log buffer至少每秒刷新一次,沒有必要使用超過一秒鐘所需要的內(nèi)存。8MB到16MB通常是足夠的。小一些的安裝應(yīng)該使用更小的值。

innodb_flush_logs_at_trx_commit ---- 為Innodb比MyISAM慢100倍而哭泣?可能忘記了調(diào)整這個(gè)值。缺省值是1,即每次事務(wù)提交時(shí)都會(huì)把日志刷新到磁盤上,非常耗資源,特別是沒有電池備份的cache時(shí)。很多應(yīng)用程序,特別是那些從MyISAM表移植過來的,應(yīng)該把它設(shè)成2。意味著只把日志刷新到操作系統(tǒng)的cache,而不刷新到磁盤。此時(shí),日志仍然會(huì)每秒一次刷新到磁盤上,因此通常不會(huì)丟失超過1到2秒的更新。設(shè)成0會(huì)更快一些,但安全性差一些,在MySQL服務(wù)崩潰的時(shí)候,會(huì)丟失事務(wù)。設(shè)成2只會(huì)在操作系統(tǒng)崩潰的時(shí)候丟失數(shù)據(jù)。

table_cache ---- 打開表是昂貴的(耗資源)。例如,MyISAM表在MYI文件頭做標(biāo)記以標(biāo)明哪些表正在使用。您不會(huì)希望這樣的操作頻繁發(fā)生,通常最好調(diào)整cache 大小,使其能夠滿足大多數(shù)打開的表的需要。它使用了一些操作系統(tǒng)的資源和內(nèi)存,但是對于現(xiàn)代的硬件水平來說通常不是問題。對于一個(gè)使用幾百個(gè)表的應(yīng)用, 1024是一個(gè)合適的值(注意每個(gè)連接需要各自的緩存)。如果有非常多的連接或者非常多的表,則需要增大它的值。我曾經(jīng)看到過使用超過100000的值。

thread_cache ---- 線程創(chuàng)建/銷毀是昂貴的,它在每次連接和斷開連接時(shí)發(fā)生。我通常把這個(gè)值至少設(shè)成16。如果應(yīng)用有時(shí)會(huì)有大量的并發(fā)連接,并且可以看到 threads_created變量迅速增長,我就把它的值調(diào)高。目標(biāo)是在通常的操作中不要有線程的創(chuàng)建。

query_cache ---- 如果應(yīng)用是以讀為主的,并且沒有應(yīng)用級的緩存,那么它會(huì)有很大幫助。不要把它設(shè)得過大,因?yàn)樗木S護(hù)可能會(huì)導(dǎo)致性能下降。通常會(huì)設(shè)置在32M到 512M之間。設(shè)置好后,經(jīng)過一段時(shí)間要進(jìn)行檢查,看看是否合適。For certain workloads cache hit ratio is lower than would justify having it enabled.(這句不會(huì)翻譯)

注意:就像看到的,上面所說的都是全局變量。這些變量依賴硬件和存儲引擎的使用,而會(huì)話級的變量(per session variables)則與特定的訪問量(workload)相關(guān)。如果只是一些簡單的查詢,就沒有必要增加sort_buffer_size,即使有 64G的內(nèi)存讓您去浪費(fèi)。而且這樣做還可能降低性能。我通常把調(diào)整會(huì)話級的變量放在第二步,在我分析了訪問量(或負(fù)載)之后。

此外在MySQL分發(fā)版中包含了一些my.cnf文件的例子,可以作為非常好的模板去使用。如果能夠恰當(dāng)?shù)貜?/p>


深圳市南山區(qū)南山街道南海大道西桂廟路北陽光華藝大廈1棟4F、4G-04

咨詢電話:136 8237 6272
大客戶咨詢:139 0290 5075
業(yè)務(wù)QQ:195006118
技術(shù)QQ:179981967

精銳軟件

Copyright? 2018-2023 深圳精銳軟件技術(shù)有限公司 All Rights Reserved. ICP備案號:粵ICP備18108116號-8 公安備案號:粵公網(wǎng)安備44030502009460號