自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對MySQL服務(wù)器實(shí)行優(yōu)化的措施有哪些?

數(shù)據(jù)庫 MySQL
此文章主要向大家描述的是MySQL服務(wù)器優(yōu)化的實(shí)際操作方案與正確使用硬件來有效的改善MySQL服務(wù)器的相關(guān)性能的實(shí)際操作方案的講解。

以下的文章主要向大家描述的是MySQL服務(wù)器優(yōu)化的實(shí)際操作方案以及對如何用硬件來有效的改善MySQL服務(wù)器的相關(guān)性能的實(shí)際操作的介紹,如果你對其實(shí)際的相關(guān)操作感興趣的話,你就可以點(diǎn)擊以下的文章了。

前面各段介紹了普通的 MySQL 用戶利用表創(chuàng)建和索引操作,以及利用查詢的編寫能夠進(jìn)行的優(yōu)化。不過,還有一些只能由 MySQL 管理員和系統(tǒng)管理員來完成的優(yōu)化,這些管理員在 MySQL 服務(wù)器或運(yùn)行 MySQL 的機(jī)器上具有控制權(quán)。有的MySQL服務(wù)器參數(shù)直接適用于查詢處理,可將它們打開。而有的硬件配置問題直接影響查詢處理速度,應(yīng)該對它們進(jìn)行調(diào)整?! 〈疟P問題

正如前面所述,磁盤尋道是一個性能的大瓶頸。當(dāng)數(shù)據(jù)開始增長以致緩存變得不可能時,這個問題變得越來越明顯。對大數(shù)據(jù)庫,在那你或多或少地要隨機(jī)存取數(shù)據(jù),你可以依靠你將至少需要一次磁盤尋道來讀取并且?guī)状未疟P尋道寫入。為了使這個問題最小化,使用有低尋道時間的磁盤。

 

 


為了增加可用磁盤軸的數(shù)量(并且從而減少尋道開銷),符號聯(lián)接文件到不同磁盤或分割磁盤是可能的。

1、使用符號連接

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

2、分割

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

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

一個好選擇是讓稍重要的數(shù)據(jù)(它能再生)上存在RAID 0磁盤上,而將確實(shí)重要的數(shù)據(jù)(像主機(jī)信息和日志文件)存在一個RAID 0+1或RAID N磁盤上。如果因為更新奇偶位你有許多寫入,RAID N可能是一個問題。

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

硬件問題

可利用硬件更有效地改善MySQL服務(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è)法重新分配磁盤活動。如果可能,應(yīng)將您的兩個最繁忙的數(shù)據(jù)庫存放在不同的物理設(shè)備上。請注意,使用同一物理設(shè)備上的不同分區(qū)是不夠的。這樣沒有幫助,因為它們?nèi)詫幱孟嗤奈锢碣Y源(磁盤頭)。移動數(shù)據(jù)庫的過程在第 10 章中介紹。

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

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

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

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

delayed_queue_size

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

key_buffer_size

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

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

back_log

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

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

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

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

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

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

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

這里是我們做過的一些測量表:

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

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

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

·在一個Sun SPARCstation 10上,gcc2.7.3是比Sun Pro C++ 4.2快13%。

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

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

總結(jié)

本節(jié)簡單介紹了如何在MySQL服務(wù)器優(yōu)化數(shù)據(jù)庫的性能,以及提高數(shù)據(jù)庫性能涉及到的硬件問題。選擇一個盡量快的系統(tǒng),使用RAID磁盤陣列是非常容易想到的方法。

對于數(shù)據(jù)庫守護(hù)程序,既可以在編譯時就提供合適的參數(shù),也可以在選項文件中提供需要優(yōu)化的參數(shù)。

【編輯推薦】

  1. CentOS系統(tǒng)操作mysql的常用命令
  2. CentOS系統(tǒng)5編譯安裝mysql-4.1.22
  3. CentOS系統(tǒng)MySQL優(yōu)化詳解
  4. Ubuntu mysql可以把data防止到內(nèi)存盤中
  5. Ubuntu MySQL設(shè)置同步服務(wù)器



 

責(zé)任編輯:佚名 來源: cnblogs
相關(guān)推薦

2010-05-19 10:40:59

IIS服務(wù)器

2009-04-15 11:42:34

MySQL優(yōu)化status

2009-02-27 13:45:00

服務(wù)器合租合租服務(wù)器的好處

2009-01-10 19:16:18

服務(wù)器ServerCPU

2016-08-22 13:36:32

2011-03-14 13:51:21

LAMPMySQL

2017-05-03 16:51:00

云服務(wù)器竅門選擇

2012-03-22 10:25:52

2023-01-30 11:27:57

人工智能高性能計算CPU

2010-05-21 09:13:01

MySQL數(shù)據(jù)庫查詢

2010-08-04 09:39:09

2019-05-17 09:25:14

肉雞服務(wù)器攻擊

2012-11-26 14:24:30

2010-05-20 13:22:32

2010-06-13 15:42:37

MySQL性能優(yōu)化

2010-06-03 09:39:24

優(yōu)化MySQL性能

2011-03-11 15:53:02

LAMP優(yōu)化

2010-05-17 17:34:13

2017-05-05 10:59:30

云服務(wù)器建站優(yōu)勢

2013-02-26 10:37:14

IP主機(jī)服務(wù)器網(wǎng)絡(luò)優(yōu)化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號