MySql的優化步驟

2021-06-18 08:27:06 字數 1891 閱讀 4874

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 whereid=12345;

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 tableorder_copy add primary key(id)

給1千萬的資料新增primarykey 需要耗時: 428秒(7分鐘)

explain select *from order_copy where id=12345

但是索引並不是可以隨便新增的,以下幾種情況需牢記在心:

select * from order_copy where id = $id

select * from order_copy where ***=』女』

select * from order_copy where order_state=』未付款』

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 ...