MySQL索引統計信息更新相關的參數


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 替代。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM