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

MySQL 8.0新特征之统计直方图

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

优化器建设了一个直方图,约莫读了c_birth_country列4.8%的数据。取样是不确定的,因此意义不大。同样的数据,同样的两条语句‘‘ANALYZE TABLE tbl UPDATE HISTOGRAM …’’,假如用了取样,获得的直方图也许就纷歧样。

查询案例

统计直方图可以带来些什么?我们可以看个例子,这个例子顶用了直方图,在执行时刻上会有很大的差异。

情形: 

  1. TPC-DS Benchmark with scale factor of 1  
  2.     Intel Core i7-4770  
  3.     Debian Stretch  
  4.     MySQL 8.0 RC1  
  5.     innodb_buffer_pool_size = 2G  
  6.     optimizer_switch = "condition_fanout_filter=on" 

Query 90

查询如下:上午售卖的数目与晚上售卖的数目的比率。

  1. mysql> SELECT CAST(amc AS DECIMAL(15, 4)) / CAST(pmc AS DECIMAL(15, 4)) am_pm_ratio  
  2. -> FROM (SELECT COUNT(*) amc  
  3. ->              FROM web_sales,  
  4. ->                          household_demographics,  
  5. ->                          time_dim,  
  6. ->                          web_page  
  7. ->             WHERE ws_sold_time_sk = time_dim.t_time_sk  
  8. ->                          AND ws_ship_hdemo_sk = household_demographics.hd_demo_sk  
  9. ->                          AND ws_web_page_sk = web_page.wp_web_page_sk  
  10. ->                          AND time_dim.t_hour BETWEEN 9 AND 9 + 1  
  11. ->                          AND household_demographics.hd_dep_count = 2  
  12. ->                          AND web_page.wp_char_count BETWEEN 5000 AND 5200) at,  
  13. ->              (SELECT COUNT(*) pmc  
  14. ->               FROM web_sales,  
  15. ->                          household_demographics,  
  16. ->                          time_dim,  
  17. ->                          web_page  
  18. ->              WHERE ws_sold_time_sk = time_dim.t_time_sk  
  19. ->                            AND ws_ship_hdemo_sk = household_demographics.hd_demo_sk  
  20. ->                            AND ws_web_page_sk = web_page.wp_web_page_sk  
  21. ->                            AND time_dim.t_hour BETWEEN 15 AND 15 + 1  
  22. ->                            AND household_demographics.hd_dep_count = 2  
  23. ->                            AND web_page.wp_char_count BETWEEN 5000 AND 5200) pt  
  24. -> ORDER BY am_pm_ratio  
  25. -> LIMIT 100;  
  26. +-------------+  
  27. | am_pm_ratio |  
  28. +-------------+  
  29. | 1.27619048 |  
  30. +-------------+  
  31. 1 row in set (1.48 sec) 

(编辑:湖南网)

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

热点阅读