MySQL 5.5 統計資訊收集
對於大表來說,需要手動新增 ANALYZE TABLE 表名 的定時收集任務。
在 MySQL 中,查詢最佳化器基於統計資訊來選擇合適的執行計劃。
統計資訊的主要部分如下:
① cardinality,表中非重複行的條目
② 表的總行數
③ 索引
對於表的資料,透過主鍵索引來代表;
對於索引的條目,透過第二索引來代表
下面的操作會導致 InnoDB 來對錶中的每個索引進行隨機取樣資料頁:
① ANALYZE TABLE 語句
② SHOW TABLE STATUS 語句
③ 資料庫重啟後,對錶的第一次訪問
innodb_stats_on_metadata 引數設定成 ON,則資料庫會將統計資訊儲存到系統表中
>show global variables like 'innodb_stats_on_metadata';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| innodb_stats_on_metadata | ON |
+--------------------------+-------+
1 row in set (0.00 sec)
對於空值的處理,可以透過 innodb_stats_method 引數來配置
>show global variables like 'innodb_stats_method';
+---------------------+-------------+
| Variable_name | Value |
+---------------------+-------------+
| innodb_stats_method | nulls_equal |
+---------------------+-------------+
1 row in set (0.00 sec)
其他的統計資訊,可以在 INFORMATION_SCHEMA、PERFORMANCE_SCHEMA 庫下的表來獲取
為了提供統計資訊收集時的取樣精度,可以調整 innodb_stats_sample_pages 引數
這個引數的預設值是 8,對於大表來說,這個預設值是不夠的,需要增大
>show global variables like 'innodb_stats_sample_pages';
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| innodb_stats_sample_pages | 8 |
+---------------------------+-------+
1 row in set (0.00 sec)
在 MySQL 中,查詢最佳化器基於統計資訊來選擇合適的執行計劃。
統計資訊的主要部分如下:
① cardinality,表中非重複行的條目
② 表的總行數
③ 索引
對於表的資料,透過主鍵索引來代表;
對於索引的條目,透過第二索引來代表
下面的操作會導致 InnoDB 來對錶中的每個索引進行隨機取樣資料頁:
① ANALYZE TABLE 語句
② SHOW TABLE STATUS 語句
③ 資料庫重啟後,對錶的第一次訪問
innodb_stats_on_metadata 引數設定成 ON,則資料庫會將統計資訊儲存到系統表中
>show global variables like 'innodb_stats_on_metadata';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| innodb_stats_on_metadata | ON |
+--------------------------+-------+
1 row in set (0.00 sec)
對於空值的處理,可以透過 innodb_stats_method 引數來配置
>show global variables like 'innodb_stats_method';
+---------------------+-------------+
| Variable_name | Value |
+---------------------+-------------+
| innodb_stats_method | nulls_equal |
+---------------------+-------------+
1 row in set (0.00 sec)
其他的統計資訊,可以在 INFORMATION_SCHEMA、PERFORMANCE_SCHEMA 庫下的表來獲取
為了提供統計資訊收集時的取樣精度,可以調整 innodb_stats_sample_pages 引數
這個引數的預設值是 8,對於大表來說,這個預設值是不夠的,需要增大
>show global variables like 'innodb_stats_sample_pages';
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| innodb_stats_sample_pages | 8 |
+---------------------------+-------+
1 row in set (0.00 sec)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-2148753/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql如收集統計資訊MySql
- MySQL系統如何收集統計資訊MySql
- Oracle收集統計資訊Oracle
- Oracle 統計資訊收集Oracle
- 收集oracle統計資訊Oracle
- ORACLE 收集統計資訊Oracle
- 【統計資訊】Oracle常用的收集統計資訊方式Oracle
- 收集全庫統計資訊
- 微課sql最佳化(3)、統計資訊收集(2)-如何收集統計資訊SQL
- 收集資料庫統計資訊需要收集直方圖資訊.資料庫直方圖
- Oracle統計資訊自動收集Oracle
- oracle收集統計資訊job停止Oracle
- MySQL 5.5常用資訊函式MySql函式
- oracle 統計資訊檢視與收集Oracle
- 6 收集資料庫統計資訊資料庫
- Fixed Objects Statistics統計資訊收集 - 2Object
- oracle 11g統計資訊收集Oracle
- EMD_MAINTENANCE 引起統計資訊收集AINaN
- 收集統計資訊的簡單操作
- ORACLE 統計資訊的收集與管理Oracle
- 統計資訊收集不完的解決
- Oracle11g 統計資訊-----統計資訊自動收集任務Oracle
- Oracle11g 統計資訊——統計資訊自動收集任務Oracle
- MySQL 統計資訊MySql
- MySQL對所有表收集統計資訊(Python 2指令碼)MySqlPython指令碼
- Oracle運維指令碼-收集統計資訊Oracle運維指令碼
- oracle統計資訊--直方圖的收集:Oracle直方圖
- 重新收集oracle表的統計資訊Oracle
- 關於oracle自動收集統計資訊Oracle
- Oracle統計資訊的收集和維護Oracle
- 微課sql最佳化(8)、統計資訊收集(6)-統計資訊查詢SQL
- [統計資訊系列7] Oracle 11g的自動統計資訊收集Oracle
- [Oracle] Oracle收集統計資訊的取樣比例Oracle
- Oracle 11g手工收集表統計資訊Oracle
- Oracle 11g 統計資訊收集指令碼Oracle指令碼
- 批量修改資料後應收集統計資訊
- ORACLE 11g 自動收集統計資訊Oracle
- oracle統計資訊 使用dbms_stats包收集統計資料Oracle