最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL數(shù)據(jù)庫優(yōu)化技術之配置技巧總結

 更新時間:2016年07月19日 11:09:19   作者:miky  
這篇文章主要介紹了MySQL數(shù)據(jù)庫優(yōu)化技術之配置技巧,較為詳細的總結分析了MySQL進行硬件級軟件優(yōu)化的相關方法與注意事項,需要的朋友可以參考下

本文實例講述了MySQL數(shù)據(jù)庫優(yōu)化技術的配置方法。分享給大家供大家參考,具體如下:

(一)減少數(shù)據(jù)庫訪問

對于可以靜態(tài)化的頁面,盡可能靜態(tài)化

對一個動態(tài)頁面中可以靜態(tài)的局部,采用靜態(tài)化

部分數(shù)據(jù)可以生成XML,或者文本文件形式保存

使用數(shù)據(jù)緩存技術,例如: MemCached

(二)優(yōu)化的檢測方法

1.用戶體驗檢測

2.Mysql狀態(tài)檢測

在Mysql命令行里面使用show status命令,得到當前mysql狀態(tài)。

主要關注下列屬性:

key_read_requests (索引讀的請求數(shù))(key_buffer_size設置影響)

key_reads(索引讀響應數(shù))

Key_blocks_used

Qcache_*

Open_tables(通過table_cache的設置影響)

Opened_tables

table_locks

3. 第三方工具檢測

mysqlreport http://hackmysql.com/mysqlreport

mytop http://jeremy.zawodny.com/mysql/mytop/

系統(tǒng)及Mysql的Log

系統(tǒng)命令: top, sar

Mysql的Log: slow_query.log

(三)硬件方面的優(yōu)化

硬件方面,最容易成為Mysql瓶頸的部分是磁盤,其次是CPU和內存

磁盤方面

使用更快的磁盤,會對Mysql有很好的幫助

使用更多的硬盤,通過Raid,可以提高單塊磁盤速度的問題

對于Raid方式,建議采用Raid 0+1 或者 Raid 1+0

CPU

毫無疑問,更高主頻的CPU和更多的CPU數(shù)量可以給Mysql更

高的性能

內存

更高的內存,往往可以讓Mysql中的更多的數(shù)據(jù)緩存在內存中,

但是,一個重要的因素是,需要有正確的Mysql的配置

網卡

使用千兆網卡及千兆網絡

(四)操作系統(tǒng)方面的優(yōu)化

1.不使用交換區(qū)。如果內存不足,增加更多的內存或配置你的系統(tǒng)使用較少內存

2. 不要使用NFS磁盤

3.增加系統(tǒng)和MySQL服務器的打開文件數(shù)量

使用ulimit –n 65535

4.增加系統(tǒng)的進程和線程數(shù)量。

5.關閉不必要的應用,優(yōu)化硬盤參數(shù),使用hdparm測試

(五)應用級的優(yōu)化

1.使用多服務器負載均衡(多臺讀和寫,用復制技術進行數(shù)據(jù)同步)

2.表的分區(qū) (自定義分區(qū),mysql5.1開始支持自帶分區(qū)功能)

3.使用數(shù)據(jù)緩存技術memcached

(六)Mysql配置的優(yōu)化

1.key_buffer(=512):索引緩沖使用的內存數(shù)量

這對MyISAM表來說非常重要,設定在可用內存的25%-30%較好,通過檢查狀態(tài)值 Key_read_requests和 Key_reads,

可以知道key_buffer設置是否合理。比例key_reads / key_read_requests應該盡可能的低,至少是1:100,1:1000更好 ,否則說明 key_buffer 設置有點偏小

2.innodb_buffer_pool_size(= 512):索引緩沖使用的內存數(shù)量

3.table_cache (=1024):數(shù)據(jù)表緩存區(qū)的尺寸

每當 MySQL 訪問一個表時,如果在表緩沖區(qū)中還有空間,該表就被打開并放入其中,這樣可以更快地訪問表內容。

通過檢查運行峰值時間的 Open_tables 和 Opened_tables 狀態(tài)值,可以決定是否需要調整 table_cache 的值。

如果你發(fā)現(xiàn) open_tables 的值等于 table_cache,并且發(fā)現(xiàn) opened_tables 狀態(tài)值在不斷增長,那么你就需要增加 table_cache 參數(shù)值了,

也不能盲目地把 table_cache 參數(shù)設置成很大的值,如果設置得太高,可能會造成文件描述符不足,從而造成性能不穩(wěn)定或者連接失敗。

4.sort_buffer_size (=256):指定排序用緩沖區(qū)的長度

該參數(shù)對應的分配內存是每連接獨占!如果有100個連接,那么實際分配的總共排序緩沖區(qū)大小為100 × 6 = 600MB。

所以,對于內存在4GB左右的服務器推薦設置為6-8M

5.join_buffer_size :關聯(lián)查詢用緩沖區(qū)的長度

4G內存以上,建議大于32M,該參數(shù)對應的分配內存也是每連接獨享!

6.max_connections (=1024):可以復用的線程數(shù)量

允許同時連接MySQL服務器的客戶數(shù)量 ,可以觀察和估計系統(tǒng)在峰值最大的并發(fā)連接數(shù)來設置

7.thread_cache(=*):可以復用的線程數(shù)量

一般設置為CPU數(shù)×2

8.innodb_buffer_pool_size(= 512):innodb表緩存池大小

這對Innodb表來說非常重要。Innodb相比MyISAM表對緩沖更為敏感。MyISAM可以在默認的 key_buffer_size 設置下運行的可以,

然而Innodb在默認的innodb_buffer_pool_size 設置下卻跟蝸牛似的。

由于Innodb把數(shù)據(jù)和索引都緩存起來,無需留給操作系統(tǒng)太多的內存,因此如果只需要用Innodb的話則可以設置它高達 70-80% 的可用內存。

一些應用于 key_buffer 的規(guī)則有 -- 如果你的數(shù)據(jù)量不大,并且不會暴增,那么無需把innodb_buffer_pool_size 設置的太大了.

9.innodb_flush_logs_at_trx_commit(=1) :事務提交后的日志刷新模式

是否為Innodb比MyISAM慢1000倍而頭大?看來也許你忘了修改這個參數(shù)了。默認值是 1,這意味著每次提交的更新事務(或者每個事務之外的語句)都會刷新到磁盤中,

而這相當耗費資源,尤其是沒有電池備用緩存時。很多應用程序,尤其是從 MyISAM轉變過來的那些,把它的值設置為 2 就可以了,也就是不把日志刷新到磁盤上,

而只刷新到操作系統(tǒng)的緩存上。日志仍然會每秒刷新到磁盤中去,因此通常不會丟失每秒1-2次更新的消耗。如果設置為0就快很多了,不過也相對不安全了,

MySQL服務器崩潰時就會丟失一些事務。設置為2指揮丟失刷新到操作系統(tǒng)緩存的那部分事務.

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL索引操作技巧匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數(shù)據(jù)庫鎖相關技巧匯總》及《MySQL常用函數(shù)大匯總

希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。

相關文章

最新評論

云安县| 商城县| 望奎县| 大冶市| 营山县| 天峨县| 利川市| 广平县| 柯坪县| 赤壁市| 武义县| 定日县| 永宁县| 泸溪县| 长春市| 奉节县| 赤峰市| 忻州市| 临泽县| 长兴县| 平乡县| 玉树县| 兖州市| 平乡县| 迁西县| 上思县| 武定县| 云龙县| 于都县| 岳西县| 荆门市| 林甸县| 阿城市| 新泰市| 丹凤县| 剑川县| 石狮市| 方山县| 宝兴县| 石城县| 库伦旗|