溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL服務(wù)器磁盤是如何分割和優(yōu)化的

發(fā)布時(shí)間:2021-08-26 16:08:30 來(lái)源:億速云 閱讀:180 作者:chen 欄目:數(shù)據(jù)庫(kù)

這篇文章主要介紹“MySQL服務(wù)器磁盤是如何分割和優(yōu)化的”,在日常操作中,相信很多人在MySQL服務(wù)器磁盤是如何分割和優(yōu)化的問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”MySQL服務(wù)器磁盤是如何分割和優(yōu)化的”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

  1、使用符號(hào)連接

  這意味著你將索引/數(shù)據(jù)文件符號(hào)從正常的數(shù)據(jù)目錄鏈接到其他磁盤(那也可以被分割的)。這使得尋道和讀取時(shí)間更好(如果磁盤不用于其他事情)

  2、分割

  分割意味著你有許多磁盤并把第一塊放在第一個(gè)磁盤上,在第二塊放在第二個(gè)磁盤上,并且第n塊在第(nmodnumber_of_disks)磁盤上,等等。這意味著,如果你的正常數(shù)據(jù)大小于分割大小(或完美地排列過(guò)),你將得到較好一些的性能。注意,分割是否很依賴于OS和分割大小。因此用不同的分割大小測(cè)試你的應(yīng)用程序。見10.8使用你自己的基準(zhǔn)。注意對(duì)分割的速度差異很依賴于參數(shù),取決于你如何分割參數(shù)和磁盤數(shù)量,你可以得出以數(shù)量級(jí)的不同。注意你必須選擇為隨機(jī)或順序存取優(yōu)化。

  為了可靠,你可能想要使用襲擊RAID0+1(分割+鏡像),但是在這種情況下,你將需要2*N個(gè)驅(qū)動(dòng)器來(lái)保存N個(gè)驅(qū)動(dòng)器的數(shù)據(jù)。如果你有錢,這可能是最好的選擇!然而你也可能必須投資一些卷管理軟件投資以高效地處理它。

  一個(gè)好選擇是讓稍重要的數(shù)據(jù)(它能再生)上存在RAID0磁盤上,而將確實(shí)重要的數(shù)據(jù)(像主機(jī)信息和日志文件)存在一個(gè)RAID0+1或RAIDN磁盤上。如果因?yàn)楦缕媾嘉荒阌性S多寫入,RAIDN可能是一個(gè)問題。

  你也可以對(duì)數(shù)據(jù)庫(kù)使用的文件系統(tǒng)設(shè)置參數(shù)。一個(gè)容易的改變是以noatime選項(xiàng)掛裝文件系統(tǒng)。這是它跳過(guò)更新在inode中的最后訪問時(shí)間,而且這將避免一些磁盤尋道。

  硬件問題

  可利用硬件更有效地改善服務(wù)器的性能:

  1、在機(jī)器中安裝更多的內(nèi)存。這樣能夠增加服務(wù)器的高速緩存和緩沖區(qū)的尺寸,使服務(wù)器更經(jīng)常地使用存放在內(nèi)存中的信息,降低從磁盤取信息的要求。

  2、如果有足夠的RAM使所有交換在內(nèi)存文件系統(tǒng)中完成,那么應(yīng)該重新配置系統(tǒng),去掉所有磁盤交換設(shè)置。否則,即使有足以滿足交換的RAM,某些系統(tǒng)仍然要與磁盤進(jìn)行交換。

  3、增加更快的磁盤以減少I/O等待時(shí)間。尋道時(shí)間是這里決定性能的主要因素。逐字地移動(dòng)磁頭是很慢的,一旦磁頭定位,從磁道讀塊則較快。

  在不同的物理設(shè)備上設(shè)法重新分配磁盤活動(dòng)。如果可能,應(yīng)將您的兩個(gè)最繁忙的數(shù)據(jù)庫(kù)存放在不同的物理設(shè)備上。請(qǐng)注意,使用同一物理設(shè)備上的不同分區(qū)是不夠的。這樣沒有幫助,因?yàn)樗鼈內(nèi)詫?zhēng)用相同的物理資源(磁盤頭)。移動(dòng)數(shù)據(jù)庫(kù)的過(guò)程在第10章中介紹。

  4、在將數(shù)據(jù)重新放到不同設(shè)備之前,應(yīng)該保證了解該系統(tǒng)的裝載特性。如果在特定的物理設(shè)備上已經(jīng)有了某些特定的主要活動(dòng),將數(shù)據(jù)庫(kù)放到該處實(shí)際上可能會(huì)使性能更壞。例如,不要把數(shù)據(jù)庫(kù)移到處理大量Web通信的Web服務(wù)器設(shè)備上。

  5、在設(shè)置MySQL時(shí),應(yīng)該配置其使用靜態(tài)庫(kù)而不是共享庫(kù)。使用共享庫(kù)的動(dòng)態(tài)二進(jìn)制系統(tǒng)可節(jié)省磁盤空間,但靜態(tài)二進(jìn)制系統(tǒng)更快(然而,如果希望裝入用戶自定義的函數(shù),則不能使用靜態(tài)二進(jìn)制系統(tǒng),因?yàn)閁DF機(jī)制依賴于動(dòng)態(tài)連接)。

  MySQL服務(wù)器磁盤怎么分割和優(yōu)化

  服務(wù)器參數(shù)的選擇

  服務(wù)器有幾個(gè)能夠改變從而影響其操作的參數(shù)(或稱變量)。系統(tǒng)變量的當(dāng)前值可以通過(guò)執(zhí)行mysqladminvaribles命令來(lái)檢查,其中幾個(gè)參數(shù)主要與查詢有關(guān),有必要在此提一下:

  delayed_queue_size

  此參數(shù)在執(zhí)行其他INSERTDELAYED語(yǔ)句的客戶機(jī)阻塞以前,確定來(lái)自INSERTDELAYED語(yǔ)句的放入隊(duì)列的行的數(shù)目。增加這個(gè)參數(shù)的值使服務(wù)器能從這種請(qǐng)求中接收更多的行,因而客戶機(jī)可以繼續(xù)執(zhí)行而不阻塞。

  key_buffer_size

  此參數(shù)為用來(lái)存放索引塊的緩沖區(qū)尺寸。如果內(nèi)存多,增加這個(gè)值能節(jié)省索引創(chuàng)建和修改的時(shí)間。較大的值使MySQL能在內(nèi)存中存儲(chǔ)更多的索引塊,這樣增加了在內(nèi)存中找到鍵值而不用讀磁盤塊的可能性。

  在MySQL3.23版及以后的版本中,如果增加了鍵緩沖區(qū)的尺寸,可能還希望用--init-file選項(xiàng)啟動(dòng)服務(wù)器。這樣能夠指定一個(gè)服務(wù)器啟動(dòng)時(shí)執(zhí)行的SQL語(yǔ)句文件。如果有想要存放在內(nèi)存中的只讀表,可將它們拷貝到索引查找非??斓腍EAP表。

  back_log

  引入客戶機(jī)連接請(qǐng)求的數(shù)量,這些請(qǐng)求在從當(dāng)前客戶機(jī)中處理時(shí)排隊(duì)。如果你有一個(gè)很忙的站點(diǎn),可以增加改變量的值。

  編譯和鏈接怎樣影響MySQL的速度

  大多數(shù)下列測(cè)試在Linux上并用MySQL基準(zhǔn)進(jìn)行的,但是它們應(yīng)該對(duì)其他操作系統(tǒng)和工作負(fù)載給出一些指示。

  當(dāng)你用-static鏈接時(shí),你得到最快的可執(zhí)行文件。使用Unix套接字而非TCP/IP連接一個(gè)數(shù)據(jù)庫(kù)也可給出好一些的性能。

  在Linux上,當(dāng)用pgcc和-O6編譯時(shí),你將得到最快的代碼。為了用這些選項(xiàng)編譯“sql_yacc.cc”,你需要大約200M內(nèi)存,因?yàn)間cc/pgcc需要很多內(nèi)存使所有函數(shù)嵌入(inline)。在配置MySQL時(shí),你也應(yīng)該設(shè)定CXX=gcc以避免包括libstdc++庫(kù)(它不需要)。

  只通過(guò)使用一個(gè)較好的編譯器或較好的編譯器選項(xiàng),在應(yīng)用中你能得到一個(gè)10-30%的加速。如果你自己編譯SQL服務(wù)器,這特別重要!

  在Intel上,你應(yīng)該例如使用pgcc或CygnusCodeFusion編譯器得到最大速度。我們已經(jīng)測(cè)試了新的Fujitsu編譯器,但是它是還沒足夠不出錯(cuò)來(lái)優(yōu)化編譯MySQL。

  這里是我們做過(guò)的一些測(cè)量表:

  ·如果你以-O6使用pgcc并且編譯任何東西,mysqld服務(wù)器是比用gcc快11%(用字符串99的版本)。

  ·如果你動(dòng)態(tài)地鏈接(沒有-static),結(jié)果慢了13%。注意你仍能使用一個(gè)動(dòng)態(tài)連接的MySQL庫(kù)。只有服務(wù)器對(duì)性能是關(guān)鍵的。

  ·如果你使用TCP/IP而非Unix套接字,結(jié)果慢7.5%。

  ·在一個(gè)SunSPARCstation10上,gcc2.7.3是比SunProC++4.2快13%。

  ·在Solaris2.5.1上,在單個(gè)處理器上MIT-pthreads比帶原生線程的Solaris慢8-12%。以更多的負(fù)載/cpus,差別應(yīng)該變得更大。

  由TcX提供的MySQL-Linux的分發(fā)用pgcc編譯并靜態(tài)鏈接。

到此,關(guān)于“MySQL服務(wù)器磁盤是如何分割和優(yōu)化的”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI