MySQL統計資訊相關表介紹

2021-08-19 13:02:50 字數 1845 閱讀 3043

相信大家都了解mysql中的統計資訊,那麼統計資訊是存放在**呢?我們怎麼去檢視?

這個表裡面的內容還是比較好理解。

重要的列:

通過這些資訊我們可以算出聚集索引的大小:

這個表裡面輸出的內容相對會比較複雜一些。

表結構和測試資料:

我們主要關注的的列:

1 主鍵索引與唯一索引 例如上面結果中index_name = primary時:

1)index_name = primarystat_name = n_diff_pfx01stat_value代表主鍵索引中第一列distinct之後的數量,從上面的例子我們看到stat_value是1,因為a這一列的值都是(1)

2)index_name = primarystat_name = n_diff_pfx02stat_value代表主鍵索引中第一列和第二列distinct之後的數量,從上面的例子我們看到stat_value是5,因為a,b兩列存在的值是(1,1)(1,2)(1,3)(1,4)(1,5)

3)stat_description中我們可以看到是那幾個列的資訊

4)n_diff_pfxnn以此類推

2 非唯一索引不同的地方是在原有的列之後會新增上主鍵索引,這樣說可能比較難理解,針對上面查詢出來的記過下面詳細說明下:

1) 根據表結構定義我們知道i1是乙個非唯一索引,是由(c,d)兩個列組成的。我們根據上面的結果可以看到除了n_diff_pfx01,n_diff_pfx02又多出來了n_diff_pfx03,n_diff_pfx04,通過stat_description我們可以看到n_diff_pfx03,n_diff_pfx04是在原有的(c,d)兩列上又多出了(c,d,a) (c,d,a,b)這裡就是將主鍵索引新增到了這裡。

2) 例如n_diff_pfx03stat_value是2 代表的就是在原有的非唯一索引上新增了主鍵索引的第一列(a), 這個時候distinct之後的值是2 所存在的值就是: (10,11,1) (10,12,1)

通過這個表我們可以檢視索引選擇性如何,並且可以看到組合索引中每一列選擇性如何,還可以計算索引的大小:

資料庫中的一些系統表對dba是非常重要的,可以幫助我們排查問題、效能分析、去更好的了解一些機制。

innodb_table_statsinnodb_index_stats兩張表我們可以了解統計資訊、計算索引的大小、索引的選擇性如何,也可以做到監控中。

通過5.7的mysql中新增了sys schema也就是讓大家不用通過去檢視**的方式去排查各種問題、故障處理等,可見對系統表的學習在日後會更重要。

【參考資料】

mysql統計資訊 概述MySQL統計資訊

mysql統計資訊的儲存分為兩種,非持久化和持久化統計資訊。一 非持久化統計資訊 非持久化統計資訊儲存在記憶體裡,如果資料庫重啟,統計資訊將丟失。有兩種方式可以設定為非持久化統計資訊 1 全域性變數,innodb stats persistent off 2 create alter表的引數,sta...

MySQL索引統計資訊更新相關的引數

mysql統計資訊相關的引數 1.innodb stats on metadata 是否自動更新統計資訊 mysql 5.7中預設為關閉狀態 僅在統計資訊配置為非持久化的時候生效。也就是說在innodb stats persistent 配置為off的時候,非持久化儲存統計資訊的手,innodb s...

MySQL統計資訊簡介

mysql統計資訊的儲存分為兩種,非持久化和持久化統計資訊。一 非持久化統計資訊 非持久化統計資訊儲存在記憶體裡,如果資料庫重啟,統計資訊將丟失。有兩種方式可以設定為非持久化統計資訊 非持久化統計資訊在以下情況會被自動更新 非持久化統計資訊的缺點顯而易見,資料庫重啟後如果大量表開始更新統計資訊,會對...