天天看點

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

一、sql語句優化步驟 

1、檢視mysql狀态及配置

show status 檢視目前連接配接的伺服器狀态

show global status 檢視mysql伺服器啟動以來的狀态

show global variables 檢視mysql伺服器配置的變量

增删改的統計

檢視 insert delete update select查詢總數

show global status like "com_insert%"

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

show global status like "com_delete%"

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

show global status like "com_update%"

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

show global status like "com_select%"

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

innodb影響行數

show global status like "innodb_rows%";

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

mysql連接配接總次數

show global status like "connection%";

包括成功和不成功的連接配接

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

mysql已經工作的秒數

show global status like "uptime%";

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

檢視mysql慢查詢次數

show global status like "%slow%";

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

檢視慢查詢日志相關設定

show global variables like "%slow%";

log_slow_queries = on slow_query_log = on 表明慢查詢日志已經開啟

slow_query_log_file 慢查詢日志檔案的路徑

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

show global variables like "%long_query%";

檢視慢查詢執行時間粒度

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

2、mysql正常日志開啟配置

配置my.conf

general_log = on                                                              

general_log_file = /home/mysql-run/mysql.log

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

表明日志已經開啟。

3、慢查詢日志開啟配置

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

檢視慢查詢日志

cat mysql_slow.log

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

4、解釋執行效率較低的sql

exiplain sql

或者使用desc sql

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

select_type : 單表查詢

rows: 查詢掃描的行數

key:用到的索引

key_length:用到的索引的長度

extra: using index 表示使用索引過濾掉不需要的行

分析表索引

myisam 索引存放于 .myi檔案中 與資料檔案.myd 分開 myisam索引可以壓縮。

innodb表中索引和資料存放同一個檔案中共享表空間。

更多索引相關知識請點選:https://segmentfault.com/a/1190000005087951

二、mysql常用管理指令 

檢視資料庫資訊

mysql>\s

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

檢視引擎

mysql> show engines;

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

檢視插件

mysql> show plugins;

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

檢視資料庫執行程序

mysql> show processlist ;

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

三、mysqldump工具 

指令位于:/usr/local/mysql/bin/mysqldump

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

備份所有資料庫

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

備份庫smudge

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

導出庫smudge 中 表cs_line

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

導出庫smudge 中 表cs_line line_id = 6 的資料 及表結構

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

備份同時生成新的binlog檔案, 使用 -f

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

隻導出表結構不導出資料,--no-data

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

跨伺服器導出導入資料

将128伺服器 smudge庫中的in_line 表 導入到 130 伺服器smudge 庫中 加上-c參數可以啟用壓縮傳遞

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

mysqldumpslow

慢查詢日志分析

檢視慢查詢日志存儲位置:

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

用法

-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

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

mysqldumpslow -t 1 檢視前1條

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

過濾 order by 慢查詢

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

四、mysqlsla工具 

安裝完畢指令位于: /usr/local/bin/mysqlsla

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

預設mysqlsla 工具是不可以使用的,需要添加依賴環境

依賴相關

相關:dbd-mysql-4.013.tar.gz dbi-1.608.tar.gz mysqlsla-2.03.tar.gz

dbi的編譯安裝

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

dbd-mysql驅動子產品的編譯安裝

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

mysqlsla的編譯安裝

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

篩選資料庫smudge慢查詢

mysqlsla -lt slow /home/mysql-run/mysql_slow.log

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

篩選資料庫smudge慢查詢 ,并排除select語句 ,隻取前兩條

MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令
MySQL架構優化實戰系列4:SQL優化步驟與常用管理指令

<b></b>

<b>本文來自雲栖社群合作夥伴"dbaplus",原文釋出時間:2016-09-02</b>