国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

21條MySQL優(yōu)化建議(經驗總結)_MySQL

來源:懂視網 責編:小采 時間:2020-11-09 19:36:54
文檔

21條MySQL優(yōu)化建議(經驗總結)_MySQL

21條MySQL優(yōu)化建議(經驗總結)_MySQL:今天一個朋友向我咨詢怎么去優(yōu)化 MySQL,我按著思維整理了一下,大概粗的可以分為21個方向。 還有一些細節(jié)東西(table cache, 表設計,索引設計,程序端緩存之類的)先不列了,對一個系統,初期能把下面做完也是一個不錯的系統。 1. 要確保有足夠的內存 數
推薦度:
導讀21條MySQL優(yōu)化建議(經驗總結)_MySQL:今天一個朋友向我咨詢怎么去優(yōu)化 MySQL,我按著思維整理了一下,大概粗的可以分為21個方向。 還有一些細節(jié)東西(table cache, 表設計,索引設計,程序端緩存之類的)先不列了,對一個系統,初期能把下面做完也是一個不錯的系統。 1. 要確保有足夠的內存 數

今天一個朋友向我咨詢怎么去優(yōu)化 MySQL,我按著思維整理了一下,大概粗的可以分為21個方向。 還有一些細節(jié)東西(table cache, 表設計,索引設計,程序端緩存之類的)先不列了,對一個系統,初期能把下面做完也是一個不錯的系統。

1. 要確保有足夠的內存

數據庫能夠高效的運行,最關建的因素需要內存足更大了,能緩存住數據,更新也可以在內存先完成。但不同的業(yè)務對內存需要強度不一樣,一推薦內存要占到數據的15-25%的比例,特別的熱的數據,內存基本要達到數據庫的80%大小。

2. 需要更多更快的CPU

MySQL 5.6可以利用到64個核,而MySQL每個query只能運行在一個CPU上,所以要求更多的CPU,更快的CPU會更有利于并發(fā)。

3. 要選擇合適的操作系統

在官方建議估計最推薦的是Solaris, 從實際生產中看CentOS, REHL都是不錯的選擇,推薦使用CentOS, REHL 版本為6以后的,當然Oracle Linux也是一個不錯的選擇。雖然從MySQL 5.5后對Windows做了優(yōu)化,但也不推薦在高并發(fā)環(huán)境中使用windows.

4. 合理的優(yōu)化系統的參數

更改文件句柄 ulimit –n 默認1024 太小
進程數限制 ulimit –u 不同版本不一樣
禁掉NUMA numctl –interleave=all

5. 選擇合適的內存分配算法

默認的內存分配就是c的malloc 現在也出現許多優(yōu)化的內存分配算法:

jemalloc and tcmalloc

從MySQL 5.5后支持聲明內存儲方法。

代碼如下:


[mysqld_safe]
malloc-lib = tcmalloc


或是直接指到so文件

代碼如下:


[mysqld_safe]

malloc-lib=/usr/local/lib/libtcmalloc_minimal.so

6. 使用更快的存儲設備ssd或是固態(tài)卡

存儲介質十分影響MySQL的隨機讀取,寫入更新速度。新一代存儲設備固態(tài)ssd及固態(tài)卡的出現也讓MySQL 大放異彩,也是淘寶在去IOE中干出了一個漂亮仗。

7. 選擇良好的文件系統

推薦XFS, Ext4,如果還在使用ext2,ext3的同學請盡快升級別。 推薦XFS,這個也是今后一段時間Linux會支持一個文件系統。

文件系統強烈推薦: XFS

8. 優(yōu)化掛載文件系統的參數

掛載XFS參數:

代碼如下:

(rw, noatime,nodiratime,nobarrier)

掛載ext4參數:

代碼如下:

ext4 (rw,noatime,nodiratime,nobarrier,data=ordered)

如果使用SSD或是固態(tài)盤需要考慮:

• innodb_page_size = 4K
• Innodb_flush_neighbors = 0

9. 選擇適合的IO調度

正常請下請使用deadline 默認是noop

代碼如下:

echo dealine >/sys/block/{DEV-NAME}/queue/scheduler

10. 選擇合適的Raid卡Cache策略

請使用帶電的Raid,啟用WriteBack, 對于加速redo log ,binary log, data file都有好處。

11. 禁用Query Cache

Query Cache在Innodb中有點雞肋,Innodb的數據本身可以在Innodb buffer pool中緩存,Query Cache屬于結果集緩存,如果開啟Query Cache更新寫入都要去檢查query cache反而增加了寫入的開銷。

在MySQL 5.6中Query cache是被禁掉了。

12. 使用Thread Pool

現在一個數據對應5個以上App場景比較,但MySQL有個特性隨著連接增多的情況下性能反而下降,所以對于連接超過200的以后場景請考慮使用thread pool. 這是一個偉大的發(fā)明。

13. 合理調整內存

13.1 減少連接的內存分配
連接可以用thread_cache_size緩存,觀查屬于比較屬不如thread pool給力。數據庫在連上分配的內存如下:

代碼如下:


max_used_connections * (
read_buffer_size +

read_rnd_buffer_size +

join_buffer_size +

sort_buffer_size +

binlog_cache_size +

thread_stack +

2 * net_buffer_length …

)


13.2 使較大的buffer pool

要把60-80%的內存分給innodb_buffer_pool_size. 這個不要超過數據大小了,另外也不要分配超過80%不然會利用到swap.

14. 合理選擇LOG刷新機制
Redo Logs:

代碼如下:


– innodb_flush_log_at_trx_commit = 1 // 最安全

– innodb_flush_log_at_trx_commit = 2 //  較好性能

– innodb_flush_log_at_trx_commit = 0 //  最好的情能

binlog :

binlog_sync = 1 需要group commit支持,如果沒這個功能可以考慮binlog_sync=0來獲得較佳性能。

數據文件:

代碼如下:

innodb_flush_method = O_DIRECT

15. 請使用Innodb表

可以利用更多資源,在線alter操作有所提高。 目前也支持非中文的full text, 同時支持Memcache API訪問。目前也是MySQL最優(yōu)秀的一個引擎。

如果你還在MyISAM請考慮快速轉換。

16. 設置較大的Redo log

以前Percona 5.5和官方MySQL 5.5比拼性能時,勝出的一個Tips就是分配了超過4G的Redo log ,而官方MySQL5.5 redo log不能超過4G. 從 MySQL 5.6后可以超過4G了,通常建Redo log加起來要超過500M。 可以通過觀查redo log產生量,分配Redo log大于一小時的量即可。

17. 優(yōu)化磁盤的IO

innodb_io_capactiy 在sas 15000轉的下配置800就可以了,在ssd下面配置2000以上。

在MySQL 5.6:

代碼如下:


innodb_lru_scan_depth = innodb_io_capacity / innodb_buffer_pool_instances

innodb_io_capacity_max = min(2000, 2 * innodb_io_capacity)


18. 使用獨立表空間

目前來看新的特性都是獨立表空間支持:
truncate table 表空間回收
表空間傳輸
較好的去優(yōu)化碎片等管理性能的增加,
整體上來看使用獨立表空間是沒用的。

19. 配置合理的并發(fā)

innodb_thread_concurrency =并發(fā)這個參數在Innodb中變化也是最頻繁的一個參數。不同的版本,有可能不同的小版本也有變動。一般推薦:

在使用thread pool 的情況下:
innodb_thread_concurrency = 0 就可以了。
如果在沒有thread pool的情況下:
5.5 推薦:innodb_thread_concurrency =16 – 32
5.6 推薦innodb_thread_concurrency = 36

20. 優(yōu)化事務隔離級別

默認是 Repeatable read
推薦使用Read committed binlog格式使用mixed或是Row
較低的隔離級別 = 較好的性能

21. 注重監(jiān)控

任環(huán)境離不開監(jiān)控,如果少了監(jiān)控,有可能就會陷入盲人摸象。 推薦zabbix+mpm構建監(jiān)控。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

21條MySQL優(yōu)化建議(經驗總結)_MySQL

21條MySQL優(yōu)化建議(經驗總結)_MySQL:今天一個朋友向我咨詢怎么去優(yōu)化 MySQL,我按著思維整理了一下,大概粗的可以分為21個方向。 還有一些細節(jié)東西(table cache, 表設計,索引設計,程序端緩存之類的)先不列了,對一個系統,初期能把下面做完也是一個不錯的系統。 1. 要確保有足夠的內存 數
推薦度:
標簽: 21 mysql 優(yōu)化
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 极品美女aⅴ高清在线观看 激情综合久久 | 国产高清美女一级a毛片 | 国产精品va在线播放 | 亚洲美女一区二区三区 | xxxwww欧美性| 国产精品成人一区二区 | 久久久久久久99久久久毒国产 | 日韩欧美高清一区 | 在线99视频 | 国产一区 在线播放 | 国模吧国模吧一二区 | 91在线一区二区 | 一级毛片一级毛片一级级毛片 | 成人特黄午夜性a一级毛片 成人国产一区二区三区精品 | 欧美日韩1区| 亚洲欧美日本另类 | 国产在线观看一区二区三区 | 国产最新精品视频 | 图片专区亚洲 欧美 另类 | 无毛片| 国产日韩在线看 | 日韩欧美一区二区三区四区 | 91综合网| 久久精品国产精品亚洲20 | 日韩欧美国产高清 | 国产精品一页 | 国产欧美精品综合一区 | 欧美国产第一页 | 亚洲欧美另类第一页 | 欧美亚洲一区二区三区 | 多人伦精品一区二区三区视频 | 亚洲国产成人精品一区二区三区 | 亚洲欧美另类色图 | 国产在线日韩 | 最新国产网址 | 97精品国产91久久久久久久 | 日韩三级电影网站 | 日本一二三区高清 | 国产成人一区二区三区小说 | 成人亚洲欧美日韩在线 | 日本免费一区二区三区 |