本文實例講述了MySQL數據庫優化技術的配置方法。,具體如下:
(一)減少數據庫訪問
對于可以靜態化的頁面,盡可能靜態化
對一個動態頁面中可以靜態的局部,采用靜態化
部分數據可以生成XML,或者文本文件形式保存
使用數據緩存技術,例如: MemCached
(二)優化的檢測方法
1.用戶體驗檢測
2.Mysql狀態檢測
在Mysql命令行里面使用show status命令,得到當前mysql狀態。
主要關注下列屬性:
key_read_requests (索引讀的請求數)(key_buffer_size設置影響)
key_reads(索引讀響應數)
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/
系統及Mysql的Log
系統命令: top, sar
Mysql的Log: slow_query.log
(三)硬件方面的優化
硬件方面,最容易成為Mysql瓶頸的部分是磁盤,其次是CPU和內存
磁盤方面
使用更快的磁盤,會對Mysql有很好的幫助
使用更多的硬盤,通過Raid,可以提高單塊磁盤速度的問題
對于Raid方式,建議采用Raid 0+1 或者 Raid 1+0
CPU
毫無疑問,更高主頻的CPU和更多的CPU數量可以給Mysql更
高的性能
內存
更高的內存,往往可以讓Mysql中的更多的數據緩存在內存中,
但是,一個重要的因素是,需要有正確的Mysql的配置
網卡
使用千兆網卡及千兆網絡
(四)操作系統方面的優化
1.不使用交換區。如果內存不足,增加更多的內存或配置你的系統使用較少內存
2. 不要使用NFS磁盤
3.增加系統和MySQL服務器的打開文件數量
使用ulimit –n 65535
4.增加系統的進程和線程數量。
5.關閉不必要的應用,優化硬盤參數,使用hdparm測試
(五)應用級的優化
1.使用多服務器負載均衡(多臺讀和寫,用復制技術進行數據同步)
2.表的分區 (自定義分區,mysql5.1開始支持自帶分區功能)
3.使用數據緩存技術memcached
(六)Mysql配置的優化
1.key_buffer(=512):索引緩沖使用的內存數量
這對MyISAM表來說非常重要,設定在可用內存的25%-30%較好,通過檢查狀態值 Key_read_requests和 Key_reads,
可以知道key_buffer設置是否合理。比例key_reads / key_read_requests應該盡可能的低,至少是1:100,1:1000更好 ,否則說明 key_buffer 設置有點偏小
2.innodb_buffer_pool_size(= 512):索引緩沖使用的內存數量
3.table_cache (=1024):數據表緩存區的尺寸
每當 MySQL 訪問一個表時,如果在表緩沖區中還有空間,該表就被打開并放入其中,這樣可以更快地訪問表內容。
新聞熱點
疑難解答