亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

MySQL數(shù)據(jù)庫優(yōu)化方法詳解

來源:神舟一號(hào)女飛俠 發(fā)布時(shí)間:2018-11-03 16:44:50 閱讀量:970

一、硬件的優(yōu)化


1.1 cpu優(yōu)化(64位cpu,建議多核綁定不同的服務(wù))


1.2 內(nèi)存(按照企業(yè)發(fā)展,合理調(diào)控內(nèi)存)


1.3 硬盤 (數(shù)量越多越好,性能:ssd(核心高并發(fā)業(yè)務(wù)) > sas(線上普通業(yè)務(wù))> sata(線下))


Raid 4 4塊盤 性能: RAID0 > RAID10 > RAID5 > RAID1


1.4 網(wǎng)卡 (網(wǎng)卡的ffer,通過參數(shù)可以內(nèi)核調(diào)優(yōu),多塊網(wǎng)卡bond)


二、軟件的優(yōu)化


2.1 操作系統(tǒng):x86_64位系統(tǒng)


2.2 建議編譯安裝,編譯優(yōu)化(一般安裝有三種方式:yum安裝,二進(jìn)制安裝,編譯安裝)


三、my.cnf參數(shù)的優(yōu)化


my.cnf參數(shù)優(yōu)化的幅度很小,大部分在架構(gòu)和sql語句的調(diào)優(yōu)


3.1 Innodb_buffer_pool_size = 2048M #數(shù)據(jù)庫的數(shù)據(jù)會(huì)緩存在這個(gè)buffer_pool里面,一般設(shè)置值為物理內(nèi)存的1/3,不超過50%


3.2 innodb_flush_log_at_trx_commit = 2 #修改參數(shù)提交不需要刷新binlog


3.3 sort_buffer_size = 2M #這些都是線程buffer,這里的值不能給大


3.4 join_buffer_size = 2M


3.5 open_file_limit = 10240 這里的值可以給大


3.6 query_cache_size = 64M


3.7 query_cache_limit = 4M 這里的值不能給大,建議前端做memcached緩存,不要在數(shù)據(jù)庫里做查詢緩存。


3.8 query_cache_min_res_unit = 2k


3.9 tmp_table_size = 256M #可以稍微給大點(diǎn),但是不要給太大,會(huì)占用磁盤空間


3.10 tmp_heap_table_size= 256M


3.11 long_query_time = 2 超過兩秒的查詢記錄下來


3.12 log_slow_queries = /data/mysql/slowlog.log


3.13 log_error = /data/mysql/error.log 記錄錯(cuò)誤日志


3.13 expire_logs_days = 7 自動(dòng)清理binlog,不要手動(dòng)清理


3.14 key_buffer_size = 2048M 索引的緩存,主要用于myisam引擎,索引的數(shù)據(jù)存儲(chǔ)在這里,如果是myisam引擎,建議值盡量大些


3.15 skip-name-resolve 這個(gè)需要在配置文件里面添加,不加容易導(dǎo)致用戶權(quán)限問題,show processlist會(huì)出現(xiàn)大量login等待


3.16 innodb_data_file_path = iddata1:1024M:autoextend


小結(jié):


1、生產(chǎn)參數(shù)是一般情況下的參數(shù),通過命令監(jiān)控慢慢調(diào)整:show global status\G


2、mysql性能調(diào)優(yōu)工具mysqlreport


    Sql語句的優(yōu)化

2.1 索引優(yōu)化


1)白名單機(jī)制--百度,項(xiàng)目開發(fā),DBA參與,減少上線后的慢SQL


抓出慢SQL,配置my.cnf


Long_query_time=2


Log_slow_queries=/data/mysql/slowlog.log


按天輪詢:slowlog.log


2) 慢查詢?nèi)罩痉治龉ぞ?/span>


Mysqldumpslow,mysqlsla,myprofi,mysql-explain-slow-log,mysqllogfilter比較


3)每天晚上0點(diǎn)定時(shí)分析慢查詢


2.2 大量復(fù)雜的sql語句拆分成多個(gè)小的sql語句


2.3 數(shù)據(jù)庫時(shí)存儲(chǔ)數(shù)據(jù)的地方,不是計(jì)算數(shù)據(jù)的地方,對(duì)數(shù)據(jù)計(jì)算的應(yīng)用類處理,都要拿到前端應(yīng)用解決。


2.4 索引的功能,一般不要用mysql數(shù)據(jù)庫,用單獨(dú)的工具,像like %餐巾紙%,這樣的語句沒有辦法做索引


    架構(gòu)的優(yōu)化

3.1 業(yè)務(wù)拆分:搜索功能,像like %餐巾紙%,一般不要用mysql數(shù)據(jù)庫


3.2 數(shù)據(jù)庫前端必須加cache,例如:memcached,用戶登錄,商品查詢


3.3 某些業(yè)務(wù)應(yīng)用使用nosql持久化緩存,例如:redis,memcachedb,ttsserver,例如:粉絲,好友關(guān)系等


3.4 動(dòng)態(tài)的數(shù)據(jù)靜態(tài)化,整個(gè)文件靜態(tài)化,頁面片段靜態(tài)化。比如:用戶發(fā)布一個(gè)商品,商品生成html,推到前端(大網(wǎng)站必須要做的)


3.5 數(shù)據(jù)庫集群與讀寫分離。一主多從,雙主多從,通過程序或dbproxy進(jìn)行集群讀寫分離。


3.6 單表超過2000萬,拆庫拆表。人工拆表拆庫(登錄、商品、訂單)


    流程、制度、安全的優(yōu)化

4.1 任何一次認(rèn)為數(shù)據(jù)記錄的更新都要走一個(gè)流程:開發(fā)--核心開發(fā)--運(yùn)維或DBA


4.2 測(cè)試流程:內(nèi)網(wǎng)測(cè)試--IDC測(cè)試--DBA測(cè)試--線上執(zhí)行(比如刪除一個(gè)表的記錄)


4.3 客戶端的管理,phpmyadmin

--------------------- 

作者:神舟一號(hào)女飛俠 

來源:CSDN 

原文:https://blog.csdn.net/qq_35393693/article/details/79799172 

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!


標(biāo)簽: 數(shù)據(jù)庫
分享:
評(píng)論:
你還沒有登錄,請(qǐng)先