MySQL索引統計資訊更新相關的引數
https://www.cnblogs.com/tangshiguang/p/6741037.html
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 替代。
======重新收集統計資訊=======
1.分析和儲存表的關鍵字分佈
analyze table table_name;
analyze 用於收集最佳化器的統計資訊、和tuning相關;對 myisam、BOB、innodb起作用。
注意:(經過實踐操作 在MySQL5.5版本下執行sql:analyze table table_name 會馬上返回一個ok狀態,但是後端
仍然會出現鎖表等情況)。
2.檢查表(檢視),檢查一個或者多個表是否有錯誤
check table table_name;
對myisam(關鍵字統計資料被更新)和innodb都有作用,對於myisam來說,需要check和repair(由於myisam表
可能 損壞)。
3.定期最佳化表(對空間碎片進行整理合併,消除由於刪除或者更新造成的空間浪費)
optimize table table_name;
對myisam,bob和innodb表起作用,但是該操作會引起鎖表。
optimize 可以回收空間,整理碎片,提高IO 之處 innodb、myisam、archive;如若是replication環境,可以加 no_wri
te_to_binlog。
optimize local table table_name;
====小結:====
在MySQL實際生產環境中,對於一些經常性DML操作的表,是需要定期在業務低峰期執行optimize來收縮表空間,對於最佳化慢sql和壓縮磁碟都有較大的好處。
analyze 和optimize都是會鎖表的,(當然是因為業務生產中基本選擇了innodb的前提下)注意在業務高峰期切忌操作。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2651482/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL中的統計資訊相關引數介紹MySql
- MySQL5.7統計資訊更新的相關引數解釋和測試MySql
- MySQL效能相關引數MySql
- MySQL 連線相關引數MySql
- MySQL slow log相關引數MySql
- mysql 索引相關MySql索引
- mysql innodb相關引數說明MySql
- MySQL slow log相關引數解釋MySql
- mysql relay log相關引數說明MySql
- MySQL中Innodb如何計算索引的統計資訊?MySql索引
- MySQL 5.7 ANALYZE TABLE分析索引的統計資訊MySql索引
- 說說MySQL索引相關MySql索引
- mysql相關內容索引MySql索引
- MySQL handler相關狀態引數解釋MySql
- 關於轉儲Oracle索引資訊的相關命令Oracle索引
- MySQL中Redo Log相關的重要引數總結MySql
- 【SCRIPT】Oracle統計資訊相關SQLOracleSQL
- Spark的相關引數配置Spark
- mysql二進位制日誌相關引數MySql
- MySQL 配置InnoDB配置非持久優化器統計資訊引數MySql優化
- 統計學三大相關係數之Pearson相關係數、Spearman相關係數
- Oracle 統計資訊相關命令彙總Oracle
- GreatSQL統計資訊相關知識點SQL
- linux 跟oracle相關的系統核心引數?LinuxOracle
- 歸檔相關引數
- PostgreSQL AutoVacuum 相關引數SQL
- 面試小知識:MySQL索引相關面試MySql索引
- MySQL 5.5客戶端字符集相關引數MySql客戶端
- 【MYSQL】兩階段提交及相關引數介紹MySql
- ORACLE表統計資訊與列統計資訊、索引統計資訊Oracle索引
- 幾個和MySQL InnoDB相關的引數設定說明MySql
- 系統相關內容索引索引
- Mysql 顯示錶的相關資訊 --命令MySql
- MySQL change buffer介紹和相關引數調整建議MySql
- MYSQL INNODB innodb_thread_concurrency相關引數理解MySqlthread
- MYSQL連線相關引數和狀態值詳解MySql
- 檢視mysql資料庫連線數、併發數相關資訊MySql資料庫
- MySQL索引分類及相關概念辨析MySql索引