共計 931 個字符,預計需要花費 3 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
MySQL 中怎么收集統計信息,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
一、手動
執行 Analyze table
innodb 和 myisam 存儲引擎都可以通過執行“Analyze table tablename”來收集表的統計信息,除非執行計劃不準確,否則不要輕易執行該操作,如果是很大的表該操作會影響表的性能。
二、自動觸發
以下行為會自動觸發統計信息的收集
1. 第一次打開表的時候
2. 表修改的行超過 1 / 6 或者 20 億條時
3. 當有新的記錄插入時
4. 執行 show index from tablename 或者執行 show table、查詢 information_schema.tables\statistics 時
三、開啟參數 innodb_stats_on_metadata
當開啟參數 innodb_stats_on_metadata 后訪問以下表也會觸發統計信息的收集
在訪問以下表時,innodb 表的統計信息可自動收集
information_schema.TABLES
information_schema.STATISTICS
information_schema.PARTITIONS
information_schema.KEY_COLUMN_USAGE
information_schema.TABLE_CONSTRAINTS
information_schema.REFERENTIAL_CONSTRAINTS
information_schema.table_constraints
參數說明:
Innodb_stats_sample_pages:每次收集統計信息時采樣的頁數,默認為 20
innodb_stats_persistent:默認 on,將 analyze table 產生的統計信息保存于磁盤,直至下次 analyze table 為止,此舉避免了統計信息動態更新,保證了執行計劃的穩定,對于大表也節省了收集統計信息的所需資源;
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。
向 AI 問一下細節