加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜阳站长网 (https://www.0558zz.cn/)- AI行业应用、低代码、混合云存储、数据仓库、物联网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL 8.0新特性之统计直方图

发布时间:2018-10-02 18:39:58 所属栏目:MySql教程 来源:韩杰·沃趣科技
导读:【新品产上线啦】51CTO播客,随时随地,碎片化学习 概览 MySQL8.0实现了统计直方图。利用直方图,用户可以对一张表的一列做数据分布的统计,特别是针对没有索引的字段。这可以帮助查询优化器找到更优的执行计划。统计直方图的主要使用场景是用来计算字段选

但是,用直方图而不是索引有以下两个原因:

  • 维护一个索引有代价。每一次的insert、update、delete都会需要更新索引,会对性能有一定的影响。而直方图一次创建永不更新,除非明确去更新它。所以不会影响insert、update、delete的性能。
  • 如果有索引,优化器用使用index dives技术来估算符合条件范围的记录数量。这种方式也是有代价的,特别是查询语句条件中有很长的IN列表。直方图相对而言代价小,因此可能更合适。

检索统计直方图

统计直方图以JSON的形式存在数据字典中。可以用内建的JSON函数built-in JSON functions从直方图获取一些信息。举例来说,如果需要知道amount列的直方图的创建或者更新时间,可以用JSON unquoting extraction operator来获取信息:

  1. mysql> SELECT  
  2. ->   HISTOGRAM->>'$."last-updated"' AS last_updated  
  3. -> FROM INFORMATION_SCHEMA.COLUMN_STATISTICS  
  4. -> WHERE  
  5. ->   SCHEMA_NAME = "sakila"  
  6. ->   AND TABLE_NAME = "payment"  
  7. ->   AND COLUMN_NAME = "amount";  
  8. +----------------------------+  
  9. | last_updated               |  
  10. +----------------------------+  
  11. | 2017-09-15 11:54:25.000000 |  
  12. +----------------------------+ 

(编辑:阜阳站长网)

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

热点阅读