mysql統計資訊相關的引數:
1. innodb_stats_on_metadata(是否自動更新統計資訊),mysql 5.7中預設為關閉狀態
僅在統計資訊配置為非持久化的時候生效。
也就是說在innodb_stats_persistent 配置為off的時候,非持久化儲存統計資訊的手,innodb_stats_on_metadata的設定才生效。
當innodb_stats_on_metadata設定為on的時候,
innodb在執show table status 或者訪問information_schema.tables 或者information_schema.statistics 系統表的時候,更新費持久化統計資訊(類似於analyze table)
某個索引的統計資訊更新時間參考mysql.innodb_index_stats這個系統表
select * from mysql.innodb_index_stats where table_name = 'teststatistics';
2. innodb_stats_auto_recalc
是否自動觸發更新統計資訊,僅影響持久化儲存的統計資訊的表,閾值是變化的資料超過錶行數的10%。
也就是說,乙個表索引統計資訊是持久化儲存的,並且表中資料變化了超過10%,
如果innodb_stats_auto_recalc為on,就會自動更新統計資訊,否則不更
3. innodb_stats_persistent(非持久化統計資訊開關),mysql 5.7中預設為開啟,持久化儲存統計資訊
該選項設定為on時候,統計資訊會持久化儲存到磁碟中,而不是存在在記憶體中,
相反,如果是非持久化儲存的(存在記憶體中),相應的統計資訊會隨著伺服器的關閉而丟失。
4. innodb_stats_persistent_sample_pages (持久化更新統計資訊時候索引頁的取樣頁數)
預設是20個page,如果設定的過高,那麼在更新統計資訊的時候,會增加analyze table的執行時間。
5. innodb_stats_transient_sample_pages(臨時性更新統計資訊時候索引頁的取樣頁數)
預設值是8,innodb_stats_persistent設定為disable的情況下innodb_stats_transient_sample_pages才生效,
也就是非持久化儲存過索引統計資訊的時候,innodb_stats_transient_sample_pages為更新統計資訊的取樣頁數
6. innodb_stats_sample_pages
已棄用. 已用innodb_stats_transient_sample_pages 替代。
MySQL統計資訊相關表介紹
相信大家都了解mysql中的統計資訊,那麼統計資訊是存放在 呢?我們怎麼去檢視?這個表裡面的內容還是比較好理解。重要的列 通過這些資訊我們可以算出聚集索引的大小 這個表裡面輸出的內容相對會比較複雜一些。表結構和測試資料 我們主要關注的的列 1 主鍵索引與唯一索引 例如上面結果中index name ...
mysql統計資訊 概述MySQL統計資訊
mysql統計資訊的儲存分為兩種,非持久化和持久化統計資訊。一 非持久化統計資訊 非持久化統計資訊儲存在記憶體裡,如果資料庫重啟,統計資訊將丟失。有兩種方式可以設定為非持久化統計資訊 1 全域性變數,innodb stats persistent off 2 create alter表的引數,sta...
Oracle統計資訊的更新
手工更新的語句是 execute dbms stats.gather table stats user name,table name 使用手工更新的場景 1.oracle有個自動更新統計資訊的job,大約在每天晚上執行。所以在白天統計資訊不會被更新掉 2.統計資訊對cbo的影響有個閥值,尤其是對範...