MYSQL 統計資料
統計資料的重要性相信瞭解ORACLE資料庫的都非常清楚,他是生成執行計劃的唯一標準,所以統計資料是否準確直接影響到執行計劃的正確性,
關於MYSQL雖然沒有ORACLE那麼多維度的統計資料(比如直方圖)但是還是有的,
MYSQL 5.6後分為2種統計資料
1、永久化的統計資料
預設的5.6.6後使用時這種方式,影響他的引數有
innodb_stats_persistent_sample_pages 每次取樣的塊數,預設為20
innodb_stats_auto_recalc 是否開啟自動收集,預設為修改量超過10%的資料
innodb_stats_persistent 預設為ON,是否使用永久化的統計資料
永久化的統計資料儲存在innodb_index_stats和innodb_table_stats中,官方文件說
統計資料並非實時的,也就是收集統計資料會滯後幾分鐘,如果想要及時的更新統計
資料需要手動執行ANALYZE TABLE(In some cases, statistics
recalculation may be delayed by a few seconds. If up-to-date statistics are
required immediately after changing significant portions of a table, run ANALYZE
TABLEto initiate a synchronous (foreground) recalculation of statistics)
如果統計資料不準可能需要修改innodb_stats_persistent_sample_pages的值更大,
如果analyze table過慢可以考慮減少innodb_stats_persistent_sample_pages的值更小。
這兩個表為INNODB的表
2、非永久化的統計數
如果設定innodb_stats_persistent為OFF就使用這種方式的統計資料,這種方式的統計
資料在資料庫重啟後就丟失,他的統計資料儲存在STATISTICS,TABLES兩個表中,他們是
MEMORY引擎的表,這種方式受影響的引數
innodb_stats_persistent 設定為OFF
innodb_stats_transient_sample_pages 預設為8,為取樣塊數
innodb_stats_on_metadata 英文描述To have statistics updated when metadata statements such as SHOW TABLE STATUS
or SHOW INDEX are run, or when accessing the INFORMATION_SCHEMA.TABLES or
INFORMATION_SCHEMA.STATISTICSt ables, execute the statement SET GLOBAL
innodb_stats_on_metadata=ON
當innodb_stats_persistent設定為ON的時候,預設innodb_stats_on_metadata是OFF的,因為它會影響SHOW TABLE STATUS等的速度
最後我們再來簡單描述一下ORCALE的統計資料收集的策略,ORACLE 10G,11G都是透過自動化的作業來收集,預設的11G周1到周5晚上10點
開始收集統計資料,週末則是早上6點開始,當然這種收集統計資料並不是全部收集,ORACLE會把修改數量超過10%的TABLES記錄到mon_mods_all$
內部表中,然後對這些表進行收集,這樣來保證統計資料能夠儘可能的描述資料的分佈,同時ORACLE會透過謂詞的使用來判定是否收集直方圖,
謂詞的使用記錄在COL_USAGE$內部檢視中,直方圖用於判定資料的傾斜,MYSQL在這方面視乎還沒有。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-1795516/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL按時間統計資料MySql
- MySQL資料庫審計系統MySql資料庫
- MySQL資料庫表索引取樣統計MySql資料庫索引
- MySQL練習——教學系統資料庫設計MySql資料庫
- 統計資料
- Mysql 5.7中資料量更改統計資料收集的邏輯MySql
- Mysql資料庫優化系列(二)------AWK指令碼統計資料庫效能引數MySql資料庫優化指令碼
- MySQL中幾種資料統計查詢的基本使用教程MySql
- MySQL如何按周統計表中資料MySql
- MySQL 資料庫設計總結MySql資料庫
- MySQL資料庫設計規範MySql資料庫
- ORACLE/MySQL資料庫模式設計~~OracleMySql資料庫模式
- 4,MySQL資料庫的設計MySql資料庫
- 口罩預約管理系統——資料庫設計(前端+PHP+MySQL)資料庫前端PHPMySql
- Oracle資料庫的資料統計(Analyze)Oracle資料庫
- 【UV統計】海量資料統計的前世今生
- 成為MySQL DBA後,再看ORACLE資料庫(十四、統計資訊與執行計劃)MySqlOracle資料庫
- MySQL 資料庫規範--設計篇MySql資料庫
- MySQL 資料庫設計的“奧祕”MySql資料庫
- MySQL之規範資料庫設計MySql資料庫
- 開啟mysql 資料庫審計功能。MySql資料庫
- python mysql資料庫程式設計PythonMySql資料庫程式設計
- 【MySql】mysql 資料庫資料訂正MySql資料庫
- MySQL 統計資訊MySql
- 統計:從計數到大資料大資料
- 統計資料庫中表大小資料庫
- 大量STATSPACK資料統計分析
- HootSuite:YouTube 廣告統計資料UI
- 父子節點資料統計
- 統計學與資料探勘
- “小資料”的統計學
- python資料統計之禪道bug統計Python
- 【資料庫資料恢復】linux系統下MYSQL資料庫資料恢復案例資料庫資料恢復LinuxMySql
- 【MySQL】資料庫系統中的“黑天鵝”MySql資料庫
- MySQL資料庫系統日常管理職責MySql資料庫
- 【MySQL資料庫】認識資料庫+環境搭建--------Windows系統MySql資料庫Windows
- 統計資料庫每天的資料增長量資料庫
- MySQL 資料庫設計和注意事項MySql資料庫