msyql統計crud次數以及開啟慢日誌記錄

2021-09-02 09:05:39 字數 1459 閱讀 3125

通過show status可以提供伺服器狀態資訊,也可以使用 msyqladmin-extende status命令獲得show status可以根據需要顯示session級別的統計結果和global 級別的統計結果

以下幾個引數對myisam和innodb儲存引擎都計數:

1.com_select 執行select操作次數,一次查詢只累加1;

2.com_insert 執行了insert操作次數,對於批量插入insert,只累加1次

3.com_update 執行了update操作次數,

4.com_delete 執行了delete操作次數

一下幾個引數對innodb儲存引擎計數的,累加的演算法也略有不同:

1.innodb_rows_read select查詢返回的行數;

2.innodb_rows_inserted執行了insert操作更新的行數;

3.innodb_rows_updated執行了update操作更新的行數;

4.innodb_rows_deleted執行了delete操作刪除的行數;

通過以上幾個引數,可以很容易的了解當前資料庫的應用是以插入更新為主還是以查詢操作為主,以及各種型別的 sql 大致的執行比例是多少。對於更新操作的計數 ,是對執行次數的計數,不論提交還是回滾都會累加。對於事務型的應用,通過 com_commit 和 com_rollback 可以了解事務提交和回滾的情況,對於回滾操作非常頻繁的資料庫,可能意味著應用編寫存在問題。

此外,以下幾個引數便於我們了解資料庫的基本情況:

1.  connections 試圖連線 mysql 伺服器的次數

2.  uptime 伺服器工作時間

3.  slow_queries 慢查詢的次數

可以通過以下兩種方式定位執行效率較低的 sql 語句:

1.  可以通過慢查詢日誌定位那些執行效率較低的 sql 語句,用--log-slow-queries[=file_name]選項啟動時,mysqld 寫乙個包含所有執行時間超過  long_query_time 秒的 sql 語句的日誌檔案。可以鏈結到管理維護中的相關章節。

2.  慢查詢日誌在查詢結束以後才紀錄,所以在應用反映執行效率出現問題的時候查詢慢查詢日誌並不能定位問題,可以使用 show processlist 命令檢視當前 mysql 在進行的執行緒,包括執行緒的狀態,是否鎖表等等,可以實時的檢視 sql 執**況,同時對一些鎖表操作進行優化。

通過以上步驟查詢到效率低的 sql 後,我們可以通過 explain 或者 desc 獲取 mysql 如何執行 select 語句的資訊,包括select 語句執行過程表如何連線和連線的次序。

explain 可以知道什麼時候必須為表加入索引以得到乙個使用索引來尋找記錄的更快的 select。

mysql> explain select sum(moneys) from sales a,companys b where a.company_id = b.id and a.year = 2006;

電話通話次數以及時長

通話次數以及時長 declare ttable id int,號碼 int,通話時長 varchar 8 insert into tselect1,21981052,00 01 19 union allselect2,21981052,00 00 26 union allselect3,219800...

Linux統計資料夾中檔案個數以及目錄個數

首先,你要明白輸入ls l命令吧,檢視某個目錄下面的檔案,執行一下大概是這樣子的,如下所示 執行ls l命令控制台輸出的結果是一行一行,每一行對應乙個目錄或者是檔案。如果是檔案的話,該行的字串資訊的第乙個字元顯示的是 如果是目錄的話,該行的字元的第乙個顯示的是 d 意即directory,找到這兩者...

Linux統計資料夾中檔案個數以及目錄個數

首先,你要明白輸入ls l命令吧,檢視某個目錄下面的檔案,執行一下大概是這樣子的,如下所示 執行ls l命令控制台輸出的結果是一行一行,每一行對應乙個目錄或者是檔案。如果是檔案的話,該行的字串資訊的第乙個字元顯示的是 如果是目錄的話,該行的字元的第乙個顯示的是 d 意即directory,找到這兩者...