溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何對(duì)MySQL性能實(shí)現(xiàn)調(diào)優(yōu)

發(fā)布時(shí)間:2020-05-18 17:08:23 來(lái)源:網(wǎng)絡(luò) 閱讀:166 作者:三月 欄目:MySQL數(shù)據(jù)庫(kù)

本文主要給大家簡(jiǎn)單講講如何對(duì)MySQL性能實(shí)現(xiàn)調(diào)優(yōu),相關(guān)專(zhuān)業(yè)術(shù)語(yǔ)大家可以上網(wǎng)查查或者找一些相關(guān)書(shū)籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望如何對(duì)MySQL性能實(shí)現(xiàn)調(diào)優(yōu)這篇文章可以給大家?guī)?lái)一些實(shí)際幫助。

MySQL性能調(diào)優(yōu)
提高M(jìn)ySQL系統(tǒng)的性能、影響速度
-替換硬件(CPU/磁盤(pán)/內(nèi)存等)
-服務(wù)程序的運(yùn)行參數(shù)調(diào)整
-對(duì)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ù)量、開(kāi)表數(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       //為所有線程緩存的打開(kāi)的表的數(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_%";

查看已打開(kāi)、打開(kāi)過(guò)多少個(gè)表
mysql>show  global  status  like  "open%tables";

查看可緩存多少個(gè)打開(kāi)的表
mysql>show  variables  like  "table_open_cache";

SQL查詢優(yōu)化
MySQL日志類(lèi)型,常用日志種類(lèi)及選項(xiàng):
錯(cuò)誤日志    log_error[=name]      //記錄啟用/運(yùn)行/停止過(guò)程的錯(cuò)誤消息
查詢?nèi)罩?   general_log,general_log_file=     //記錄客戶端連接和查詢操作
慢查詢?nèi)罩? slow_query_log,slow_query_log_file=,long_query_time=    //記錄耗時(shí)較長(zhǎng)或不使用索引的查詢操作

記錄慢查詢:
slow-query-log    //啟用慢查詢
slow-query-log-file    //指定慢查詢?nèi)罩疚募?br/>long-query-time      //超過(guò)指定秒數(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%";

如何對(duì)MySQL性能實(shí)現(xiàn)調(diào)優(yōu)就先給大家講到這里,對(duì)于其它相關(guān)問(wèn)題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專(zhuān)業(yè)知識(shí)分享給大家的。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI