加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL 8.0新特征之统计直方图

发布时间:2018-09-21 06:09:52 所属栏目:编程 来源:韩杰·沃趣科技
导读:【新品产上线啦】51CTO播客,随时随地,碎片化进修 概览 MySQL8.0实现了统计直方图。操作直方图,用户可以对一张表的一列做数据漫衍的统计,出格是针对没有索引的字段。这可以辅佐查询优化器找到更优的执行打算。统计直方图的首要行使场景是用来计较字段选

当你在成立直方图的时辰,MySQL server会将全部数据读到内存中,然后在内存中举办操纵,包罗排序。假如对一个很大的表成立直方图,也许会有风险将几百M的数据都读到内存中,但这是不明智的。为了规避这个风险,MySQL会按照给定的histogram_generation_max_mem_size的值计较该将几多行数据读到内存中。假如按照当前histogram_generation_max_mem_size的限定,MySQL以为只能读一部门数据,那么MySQL会举办取样。通过“sampling-rate”属性,可以调查到取样比率。

  1. mysql> SET histogram_generation_max_mem_size = 1000000;  
  2. Query OK, 0 rows affected (0.00 sec)  
  3. mysql> ANALYZE TABLE customer UPDATE HISTOGRAM ON c_birth_country WITH 16 BUCKETS;  
  4. +----------------+-----------+----------+------------------------------------------------------------+  
  5. | Table | Op | Msg_type | Msg_text |  
  6. +----------------+-----------+----------+------------------------------------------------------------+  
  7. | tpcds.customer | histogram | status | Histogram statistics created for column 'c_birth_country'. |  
  8. +----------------+-----------+----------+------------------------------------------------------------+  
  9. 1 row in set (0.22 sec)  
  10. mysql> SELECT histogram->>'$."sampling-rate"'  
  11. -> FROM information_schema.column_statistics  
  12. -> WHERE table_name = "customer"  
  13. -> AND column_name = "c_birth_country";  
  14. +---------------------------------+  
  15. | histogram->>'$."sampling-rate"' |  
  16. +---------------------------------+  
  17. | 0.048743243211626014 |  
  18. +---------------------------------+  
  19. 1 row in set (0.00 sec) 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读