本文主要給大家簡單講講如何對MySQL性能實(shí)現(xiàn)調(diào)優(yōu),相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望如何對MySQL性能實(shí)現(xiàn)調(diào)優(yōu)這篇文章可以給大家?guī)硪恍?shí)際幫助。
公司主營業(yè)務(wù):做網(wǎng)站、網(wǎng)站制作、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出博望免費(fèi)做網(wǎng)站回饋大家。
MySQL性能調(diào)優(yōu)
提高M(jìn)ySQL系統(tǒng)的性能、影響速度
-替換硬件(CPU/磁盤/內(nèi)存等)
-服務(wù)程序的運(yùn)行參數(shù)調(diào)整
-對SQL查詢進(jìn)行優(yōu)化
并發(fā)及連接控制
-連接數(shù)、連接超時(shí)
max_connections //允許的最大并發(fā)連接數(shù)
connect_timeout //等待建立連接的超時(shí)秒數(shù),默認(rèn)10秒,只在登錄時(shí)有效
wait_timeout //等待關(guān)閉連接的不活動(dòng)超時(shí)秒數(shù),默認(rèn)28800秒(8小時(shí))
-產(chǎn)看當(dāng)前已使用的連接數(shù)
mysql>flush status;
mysql>show globale status like "max_used_connections";
-查看默認(rèn)的最大連接數(shù)
mysql>show variables like "max_connections";
-緩存參數(shù)控制
緩存區(qū)、線程數(shù)量、開表數(shù)量
key_buffer_size //用于MyISAM引擎的關(guān)鍵索引緩存大小
sort_buffer_size //為每個(gè)要排序的線程分配此大小的緩存空間
read_buffer_size //為順序讀取表記錄保留的緩存大小
read_rnd_buffer_size //為按排序結(jié)果讀取表記錄保留的緩存大小
thread_cache_size //允許保存在緩存中被重用的線程數(shù)量
table_open_cache //為所有線程緩存的打開的表的數(shù)量
key_buffer_size=8M
當(dāng)key_reads/key_read_requests較低時(shí)可適當(dāng)加大此緩存值
mysql>show global status like "key_read%";
mysql>show variables like "key_buffer_size";
sort_buffer_size=256K
增大此值可提高ORDER和GROUP的速度
mysql>show variables like "sort_buffer_size";
查看表記錄讀取緩存
-此緩存值影響SQL查詢的響應(yīng)速度
mysql>show variables like "read_%_size";
查看可重用線程
mysql>show variables like "thread_%_size";
查看當(dāng)前的線程重用狀態(tài)
mysql>show global status like "threads_%";
查看已打開、打開過多少個(gè)表
mysql>show global status like "open%tables";
查看可緩存多少個(gè)打開的表
mysql>show variables like "table_open_cache";
SQL查詢優(yōu)化
MySQL日志類型,常用日志種類及選項(xiàng):
錯(cuò)誤日志 log_error[=name] //記錄啟用/運(yùn)行/停止過程的錯(cuò)誤消息
查詢?nèi)罩? general_log,general_log_file= //記錄客戶端連接和查詢操作
慢查詢?nèi)罩? slow_query_log,slow_query_log_file=,long_query_time= //記錄耗時(shí)較長或不使用索引的查詢操作
記錄慢查詢:
slow-query-log //啟用慢查詢
slow-query-log-file //指定慢查詢?nèi)罩疚募?br/>long-query-time //超過指定秒數(shù)(默認(rèn)10秒)的查詢才被記錄
log-queries-not-using-indexes //記錄未使用索引的查詢
調(diào)整服務(wù)配置:
vim /etc/my.cnf
[mysqld]
...
slow_query_log=1
slow_query_log_file=mysql-slow.log
long_query_time=5
log_queries_not_using_indexes=1
systemctl restart mysqld
查看慢查詢?nèi)罩?,使用mysqldumpslow工具
mysqldumpslow /var/lib/mysql/mysql-slow.log
查看緩存的大小
mysql>show variables like "query_cache%";
查看當(dāng)前的查詢緩存統(tǒng)計(jì)
mysql>show global status like "qcache%";
如何對MySQL性能實(shí)現(xiàn)調(diào)優(yōu)就先給大家講到這里,對于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專業(yè)知識(shí)分享給大家的。