mysql優化的一般步驟:
1.通過show status 命令了解各種sql的執行效率
show status提供msyql伺服器的狀態資訊
一般情況下,我們只需要了解以」com」開頭的指令
show session status like 『com%』:顯示當前的連線的統計結果
show global status like 『com%』 :顯示自資料庫上次啟動至今的統計結果
注:預設是session級別的
其中com_***表示***語句所執行的次數。
重點注意:com_select,com_insert,com_update,com_delete通過這幾個引數,可以容易地了解到當前資料庫的應用是以插入更新為主還是以查詢操作為主,以及各類的sql大致的執行比例是多少。
另外,還有幾個引數需要注意下:
show status like 『connections』// 試圖連線mysql伺服器的次數
show status like 『uptime』//伺服器工作的時間(單位秒)
show status like 『slow_queries』//慢查詢的次數 (預設是10秒中就當做是慢查詢,如下圖所示)
a) 如何查詢mysql的慢查詢時間
show variables like 'long_query_time';
b) 修改mysql 慢查詢時間
set long_query_time=2//如果查詢時間超過2秒就算作是慢查詢
2. 定位執行效率較低的sql語句(dql出現問題的概率較dml的大)
問題是:如何在乙個專案中,找到慢查詢的select語句?
答案:mysql支援把慢查詢語句記錄到日誌檔案中。程式設計師需要修改php.ini的配置檔案,預設情況下,慢查詢記錄是不開啟的。
開啟慢查詢記錄的步驟:
開啟 my.ini ,找到 [mysqld] 在其下面新增
long_query_time = 2
log-slow-queries = d:/mysql/logs/slow.log #設定把日誌寫在那裡,可以為空,系統會給乙個預設的檔案
例子:我們資料表中有1千萬條的資料量
dql語句:select * from order_copy where id=12345;
查詢耗時:19s>2s,所以mysql會將該條select語句記錄到慢查詢日誌中
新增索引前:19s
新增索引後:0.08s
3.通過explain分析低效率的sql語句的執**況
使用explain分析該dql語句:
explain select * from order_copy where id=12345
會產生如下資訊:
select_type:表示查詢的型別。
table:輸出結果集的表
type:表示表的連線型別(system和const為佳)
possible_keys:表示查詢時,可能使用的索引
key:表示實際使用的索引
key_len:索引欄位的長度
rows:掃瞄的行數
extra:執**況的描述和說明
注意:要盡量避免讓type的結果為all,extra的結果為:using filesort
4.確定問題並採取相應的優化措施
例如:給字段id新增索引:
alter table order_copy add primary key(id)
給1千萬的資料新增primary key 需要耗時: 428秒(7分鐘)
正是因為給id新增了索引,才使得rows的結果為1
但是索引並不是可以隨便新增的,以下幾種情況需牢記在心:
select * from order_copy where id = $id
select * from order_copy where ***=』女』
select * from order_copy where order_state=』未付款』
索引的型別:
索引的使用
新增主鍵(索引) alter table 表名 add primary key(列名,..); 聯合主鍵
MySql的優化步驟
mysql優化的一般步驟 1.通過show status 命令了解各種sql的執行效率 show status提供msyql伺服器的狀態資訊 一般情況下,我們只需要了解以 com 開頭的指令 show session status like com 顯示當前的連線的統計結果 show global ...
MySql的優化步驟
mysql優化的一般步驟 1.通過show status 命令了解各種sql的執行效率 show status提供msyql伺服器的狀態資訊 一般情況下,我們只需要了解以 com 開頭的指令 show session status like com 顯示當前的連線的統計結果 show global ...
mysql優化步驟
2019獨角獸企業重金招聘python工程師標準 mysql優化的一般步驟 1.通過show status 命令了解各種sql的執行效率 show status提供msyql伺服器的狀態資訊 一般情況下,我們只需要了解以 com 開頭的指令 show session status like com ...