《Mysql應(yīng)用MySQL數(shù)據(jù)庫優(yōu)化技術(shù)之配置技巧總結(jié)》要點:
本文介紹了Mysql應(yīng)用MySQL數(shù)據(jù)庫優(yōu)化技術(shù)之配置技巧總結(jié),希望對您有用。如果有疑問,可以聯(lián)系我們。
本文實例講述了MySQL數(shù)據(jù)庫優(yōu)化技術(shù)的配置方法.分享給大家供大家參考,具體如下:MYSQL教程
(一)減少數(shù)據(jù)庫訪問MYSQL教程
對于可以靜態(tài)化的頁面,盡可能靜態(tài)化MYSQL教程
對一個動態(tài)頁面中可以靜態(tài)的局部,采用靜態(tài)化MYSQL教程
部分?jǐn)?shù)據(jù)可以生成XML,或者文本文件形式保存MYSQL教程
使用數(shù)據(jù)緩存技術(shù),例如: MemCachedMYSQL教程
(二)優(yōu)化的檢測方法MYSQL教程
1.用戶體驗檢測MYSQL教程
2.Mysql狀態(tài)檢測MYSQL教程
在Mysql命令行里面使用show status命令,得到當(dāng)前mysql狀態(tài).MYSQL教程
主要關(guān)注下列屬性:MYSQL教程
key_read_requests (索引讀的請求數(shù))(key_buffer_size設(shè)置影響)MYSQL教程
key_reads(索引讀響應(yīng)數(shù))MYSQL教程
Key_blocks_usedMYSQL教程
Qcache_*MYSQL教程
Open_tables(通過table_cache的設(shè)置影響)MYSQL教程
Opened_tablesMYSQL教程
table_locksMYSQL教程
3. 第三方工具檢測MYSQL教程
mysqlreport http://hackmysql.com/mysqlreportMYSQL教程
mytop http://jeremy.zawodny.com/mysql/mytop/MYSQL教程
系統(tǒng)及Mysql的LogMYSQL教程
系統(tǒng)命令: top, sarMYSQL教程
Mysql的Log: slow_query.logMYSQL教程
(三)硬件方面的優(yōu)化MYSQL教程
硬件方面,最容易成為Mysql瓶頸的部分是磁盤,其次是CPU和內(nèi)存MYSQL教程
磁盤方面MYSQL教程
使用更快的磁盤,會對Mysql有很好的幫助MYSQL教程
使用更多的硬盤,通過Raid,可以提高單塊磁盤速度的問題MYSQL教程
對于Raid方式,建議采用Raid 0+1 或者 Raid 1+0MYSQL教程
CPUMYSQL教程
毫無疑問,更高主頻的CPU和更多的CPU數(shù)量可以給Mysql更MYSQL教程
高的性能MYSQL教程
內(nèi)存MYSQL教程
更高的內(nèi)存,往往可以讓Mysql中的更多的數(shù)據(jù)緩存在內(nèi)存中,MYSQL教程
但是,一個重要的因素是,需要有正確的Mysql的配置MYSQL教程
網(wǎng)卡MYSQL教程
使用千兆網(wǎng)卡及千兆網(wǎng)絡(luò)MYSQL教程
(四)操作系統(tǒng)方面的優(yōu)化MYSQL教程
1.不使用交換區(qū).如果內(nèi)存不足,增加更多的內(nèi)存或配置你的系統(tǒng)使用較少內(nèi)存MYSQL教程
2. 不要使用NFS磁盤MYSQL教程
3.增加系統(tǒng)和MySQL服務(wù)器的打開文件數(shù)量MYSQL教程
使用ulimit Cn 65535MYSQL教程
4.增加系統(tǒng)的進(jìn)程和線程數(shù)量.MYSQL教程
5.關(guān)閉不必要的應(yīng)用,優(yōu)化硬盤參數(shù),使用hdparm測試MYSQL教程
(五)應(yīng)用級的優(yōu)化MYSQL教程
1.使用多服務(wù)器負(fù)載均衡(多臺讀和寫,用復(fù)制技術(shù)進(jìn)行數(shù)據(jù)同步)MYSQL教程
2.表的分區(qū) (自定義分區(qū),mysql5.1開始支持自帶分區(qū)功能)MYSQL教程
3.使用數(shù)據(jù)緩存技術(shù)memcachedMYSQL教程
(六)Mysql配置的優(yōu)化MYSQL教程
1.key_buffer(=512):索引緩沖使用的內(nèi)存數(shù)量MYSQL教程
這對MyISAM表來說非常重要,設(shè)定在可用內(nèi)存的25%-30%較好,通過檢查狀態(tài)值 Key_read_requests和 Key_reads,MYSQL教程
可以知道key_buffer設(shè)置是否合理.比例key_reads / key_read_requests應(yīng)該盡可能的低,至少是1:100,1:1000更好 ,否則說明 key_buffer 設(shè)置有點偏小MYSQL教程
2.innodb_buffer_pool_size(= 512):索引緩沖使用的內(nèi)存數(shù)量MYSQL教程
3.table_cache (=1024):數(shù)據(jù)表緩存區(qū)的尺寸MYSQL教程
每當(dāng) MySQL 訪問一個表時,如果在表緩沖區(qū)中還有空間,該表就被打開并放入其中,這樣可以更快地訪問表內(nèi)容.MYSQL教程
通過檢查運行峰值時間的 Open_tables 和 Opened_tables 狀態(tài)值,可以決定是否需要調(diào)整 table_cache 的值.MYSQL教程
如果你發(fā)現(xiàn) open_tables 的值等于 table_cache,并且發(fā)現(xiàn) opened_tables 狀態(tài)值在不斷增長,那么你就需要增加 table_cache 參數(shù)值了,MYSQL教程
也不能盲目地把 table_cache 參數(shù)設(shè)置成很大的值,如果設(shè)置得太高,可能會造成文件描述符不足,從而造成性能不穩(wěn)定或者連接失敗.MYSQL教程
4.sort_buffer_size (=256):指定排序用緩沖區(qū)的長度MYSQL教程
該參數(shù)對應(yīng)的分配內(nèi)存是每連接獨占!如果有100個連接,那么實際分配的總共排序緩沖區(qū)大小為100 × 6 = 600MB.MYSQL教程
所以,對于內(nèi)存在4GB左右的服務(wù)器推薦設(shè)置為6-8MMYSQL教程
5.join_buffer_size :關(guān)聯(lián)查詢用緩沖區(qū)的長度MYSQL教程
4G內(nèi)存以上,建議大于32M,該參數(shù)對應(yīng)的分配內(nèi)存也是每連接獨享!MYSQL教程
6.max_connections (=1024):可以復(fù)用的線程數(shù)量MYSQL教程
允許同時連接MySQL服務(wù)器的客戶數(shù)量 ,可以觀察和估計系統(tǒng)在峰值最大的并發(fā)連接數(shù)來設(shè)置MYSQL教程
7.thread_cache(=*):可以復(fù)用的線程數(shù)量MYSQL教程
一般設(shè)置為CPU數(shù)×2MYSQL教程
8.innodb_buffer_pool_size(= 512):innodb表緩存池大小MYSQL教程
這對Innodb表來說非常重要.Innodb相比MyISAM表對緩沖更為敏感.MyISAM可以在默認(rèn)的 key_buffer_size 設(shè)置下運行的可以,MYSQL教程
然而Innodb在默認(rèn)的innodb_buffer_pool_size 設(shè)置下卻跟蝸牛似的.MYSQL教程
由于Innodb把數(shù)據(jù)和索引都緩存起來,無需留給操作系統(tǒng)太多的內(nèi)存,因此如果只需要用Innodb的話則可以設(shè)置它高達(dá) 70-80% 的可用內(nèi)存.MYSQL教程
一些應(yīng)用于 key_buffer 的規(guī)則有 -- 如果你的數(shù)據(jù)量不大,并且不會暴增,那么無需把innodb_buffer_pool_size 設(shè)置的太大了.MYSQL教程
9.innodb_flush_logs_at_trx_commit(=1) :事務(wù)提交后的日志刷新模式MYSQL教程
是否為Innodb比MyISAM慢1000倍而頭大?看來也許你忘了修改這個參數(shù)了.默認(rèn)值是 1,這意味著每次提交的更新事務(wù)(或者每個事務(wù)之外的語句)都會刷新到磁盤中,MYSQL教程
而這相當(dāng)耗費資源,尤其是沒有電池備用緩存時.很多應(yīng)用程序,尤其是從 MyISAM轉(zhuǎn)變過來的那些,把它的值設(shè)置為 2 就可以了,也就是不把日志刷新到磁盤上,MYSQL教程
而只刷新到操作系統(tǒng)的緩存上.日志仍然會每秒刷新到磁盤中去,因此通常不會丟失每秒1-2次更新的消耗.如果設(shè)置為0就快很多了,不過也相對不安全了,MYSQL教程
MySQL服務(wù)器崩潰時就會丟失一些事務(wù).設(shè)置為2指揮丟失刷新到操作系統(tǒng)緩存的那部分事務(wù).MYSQL教程
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL索引操作技巧匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》MYSQL教程
希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助.MYSQL教程
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/5015.html