久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

MySQL安裝后需要調(diào)整什么(大歡樂(lè) 譯)

 looline 2006-11-18

 

MySQL安裝后需要調(diào)整什么 大歡樂(lè)譯

原文連接
http://www./2006/09/29/what-to-tune-in-mysql-server-after-installation/

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

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

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

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的情況并不罕見(jiàn)。這樣就有些浪費(fèi)了,。如果只是使用很少的MyISAM表,,你希望它的值小一些,但是仍然至少要設(shè)成16到32M,,用于臨時(shí)表(占用硬盤的)的索引,。

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

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

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

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

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

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

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

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

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

此外在MySQL分發(fā)版中包含了一些my.cnf文件的例子,,可以作為非常好的模板去使用。如果你能夠恰當(dāng)?shù)貜闹羞x擇一個(gè),,通常會(huì)比缺省值要好,。

    本站是提供個(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)論公約

    類似文章 更多