一、sql語句優化步驟
1、檢視mysql狀态及配置
show status 檢視目前連接配接的伺服器狀态
show global status 檢視mysql伺服器啟動以來的狀态
show global variables 檢視mysql伺服器配置的變量
增删改的統計
檢視 insert delete update select查詢總數
show global status like "com_insert%"
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuYDMyIjMwITMxIDM5AjNxAjMvwlMwkDMvwlNxAjMvwVZslmZkF2bsBXdvwlbj5yc1xGchJGZvw1LcpDc0RHaiojIsJye.png)
show global status like "com_delete%"
show global status like "com_update%"
show global status like "com_select%"
innodb影響行數
show global status like "innodb_rows%";
mysql連接配接總次數
show global status like "connection%";
包括成功和不成功的連接配接
mysql已經工作的秒數
show global status like "uptime%";
檢視mysql慢查詢次數
show global status like "%slow%";
檢視慢查詢日志相關設定
show global variables like "%slow%";
log_slow_queries = on slow_query_log = on 表明慢查詢日志已經開啟
slow_query_log_file 慢查詢日志檔案的路徑
show global variables like "%long_query%";
檢視慢查詢執行時間粒度
2、mysql正常日志開啟配置
配置my.conf
general_log = on
general_log_file = /home/mysql-run/mysql.log
表明日志已經開啟。
3、慢查詢日志開啟配置
檢視慢查詢日志
cat mysql_slow.log
4、解釋執行效率較低的sql
exiplain sql
或者使用desc sql
select_type : 單表查詢
rows: 查詢掃描的行數
key:用到的索引
key_length:用到的索引的長度
extra: using index 表示使用索引過濾掉不需要的行
分析表索引
myisam 索引存放于 .myi檔案中 與資料檔案.myd 分開 myisam索引可以壓縮。
innodb表中索引和資料存放同一個檔案中共享表空間。
更多索引相關知識請點選:https://segmentfault.com/a/1190000005087951
二、mysql常用管理指令
檢視資料庫資訊
mysql>\s
檢視引擎
mysql> show engines;
檢視插件
mysql> show plugins;
檢視資料庫執行程序
mysql> show processlist ;
三、mysqldump工具
指令位于:/usr/local/mysql/bin/mysqldump
備份所有資料庫
備份庫smudge
導出庫smudge 中 表cs_line
導出庫smudge 中 表cs_line line_id = 6 的資料 及表結構
備份同時生成新的binlog檔案, 使用 -f
隻導出表結構不導出資料,--no-data
跨伺服器導出導入資料
将128伺服器 smudge庫中的in_line 表 導入到 130 伺服器smudge 庫中 加上-c參數可以啟用壓縮傳遞
mysqldumpslow
慢查詢日志分析
檢視慢查詢日志存儲位置:
用法
-s, 是表示按照何種方式排序,c、t、l、r分别是按照記錄次數、時間、查詢時間、傳回的記錄數來排序,ac、at、al、ar,表示相應的倒叙;
-t, 是top n的意思,即為傳回前面多少條的資料;
-g, 後邊可以寫一個正則比對模式,大小寫不敏感的。
mysqldumpslow -s -r 按照傳回的記錄數排序
mysqldumpslow -s -r /home/mysql-run/mysql_slow.log
mysqldumpslow -t 1 檢視前1條
過濾 order by 慢查詢
四、mysqlsla工具
安裝完畢指令位于: /usr/local/bin/mysqlsla
預設mysqlsla 工具是不可以使用的,需要添加依賴環境
依賴相關
相關:dbd-mysql-4.013.tar.gz dbi-1.608.tar.gz mysqlsla-2.03.tar.gz
dbi的編譯安裝
dbd-mysql驅動子產品的編譯安裝
mysqlsla的編譯安裝
篩選資料庫smudge慢查詢
mysqlsla -lt slow /home/mysql-run/mysql_slow.log
篩選資料庫smudge慢查詢 ,并排除select語句 ,隻取前兩條
<b></b>
<b>本文來自雲栖社群合作夥伴"dbaplus",原文釋出時間:2016-09-02</b>