婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺析MySQL的基數統計

淺析MySQL的基數統計

熱門標簽:常州電銷外呼系統一般多少錢 地圖標注被騙三百怎么辦 云南語音外呼系統平臺 天智外呼系統 北京人工外呼系統價錢 房產智能外呼系統品牌 沃克斯電梯外呼線路圖 400電話鄭州申請 福州呼叫中心外呼系統哪家好

一、基數是啥?
Cardinality指的就是MySQL表中某一列的不同值的數量。

如果這一類是唯一索引,那基數 = 行數。

如果這一列是sex,枚舉類型只有男女,那它是基數就是2

Cardinality越高,列就越有成為索引的價值。MySQL執行計劃也會基于Cardinality選擇索引。

通過下面的方式可以看到表中各列的基數。

比如這個經典的例子:
有一列為sex,那對于sex列中存儲的值來說 非男即女,它的基數最大就是2。
那也就完全沒有必要為sex建立索引。因為,為了提升你基于sex的查詢速度,MySQL會為你選擇的這個新索引創建一棵全新的B+Tree。但你sex只有兩種值,對于MySQL來說,即使它為你指定的列建立了B+Tree索引,真正執行查詢時,最多進行一次二分查詢,剩下的操作只能是遍歷,所以為sex創建索引意義不大。

二、InnoDB更新基數的時機?
參數:innodb_stats_auto_recalc控制MySQL是否主動重新計算這些持久性的信息。默認為1表示true,0表示false。
默認情況下當表中的行變化超過10%時,重新計算基數信息。

三、基數是估算出來

基數并不會實時更新!而且它是通過采樣估算出來的值!

至于基數的公式是怎樣的,可能并不重要。

重要的是你得知道,他是通過隨機采樣數據頁的方式統計出來的一個估算值。

而且隨機采樣的頁數可以通過參數innodb_stats_persistent_sample_pages 設置,默認值是20。

這就意味著 基數值并不準確,甚至你每次計算的結果相擦還是蠻大的。

四、持久化基數

可以通過參數innodb_stats_persistent 控制是否持久化基數,默認為off。

當然你可以為一個單獨的表設置 STATS_PERSISTENT=1 那么它的 innodb_stats_persistent將自動被啟用。

開啟它的好處是:重啟MySQL不會再重復計算這個值,加快重啟速度。

五、如何主動更新基數?

執行下面的SQL時都會觸發InnoDB更新基數(即使你并沒有意識到它會更新基數)。

所以盡量選擇一個業務低峰期

analyze table tableName;

如果因為采樣的數量太少了,計算的基數錯的離譜。那很可能會導致MySQL的優化器選錯索引。這是你可以將這個值適當調大。但是增加 太多可能會導致 ANALYZE TABLE運行緩慢。

反之, ANALYZE TABLE運行太慢。你可以適度調整參數innodb_stats_persistent_sample_pages 的值。但是這又可能導致基數計算的不準確。

如果沒有辦法平衡兩者的關系。可以考慮減少表中索引列的數量或限制分區的數量以降低 ANALYZE TABLE復雜性。表的主鍵中的列數也很重要,因為主鍵列被附加到每個非唯一索引中。

參考:

https://dev.mysql.com/doc/refman/5.7/en/innodb-persistent-stats.html

https://dev.mysql.com/doc/refman/5.7/en/innodb-analyze-table-complexity.html

以上就是淺析MySQL的基數統計的詳細內容,更多關于MySQL 基數統計的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • Mysql臟頁flush及收縮表空間原理解析
  • 推薦幾款MySQL相關工具
  • 淺析MySQL的lru鏈表
  • MySQL的查詢緩存和Buffer Pool
  • mysql 遞歸查找菜單節點的所有子節點的方法
  • MySQL的表空間是什么
  • MySQL慢查詢如何定位詳解
  • MySQL的Flush-List和臟頁的落盤機制

標簽:徐州 鹽城 拉薩 沈陽 黔東 移動 珠海 沈陽

巨人網絡通訊聲明:本文標題《淺析MySQL的基數統計》,本文關鍵詞  淺析,MySQL,的,基數,統計,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺析MySQL的基數統計》相關的同類信息!
  • 本頁收集關于淺析MySQL的基數統計的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 咸阳市| 龙门县| 和顺县| 五大连池市| 临江市| 枣强县| 永春县| 北辰区| 古田县| 普宁市| 五指山市| 库伦旗| 临沭县| 长沙市| 平利县| 河曲县| 扎鲁特旗| 子洲县| 枣庄市| 九江市| 论坛| 石狮市| 永仁县| 长汀县| 土默特右旗| 格尔木市| 阳东县| 布尔津县| 汝城县| 星座| 宝应县| 隆安县| 垦利县| 陆川县| 海口市| 兰西县| 余姚市| 西畴县| 大新县| 慈溪市| 象州县|