MySQL中直方图统计信息的使用

数据库 专栏收录该内容
¥59.90 ¥99.00
160篇文章

在MySQL数据库中,直方图统计信息是一种用于优化查询性能的重要工具。直方图提供了关于数据分布的统计信息,使得查询优化器能够更准确地估计查询条件的选择性,并生成更优化的执行计划。本文将介绍MySQL中直方图统计信息的使用方法,并提供相应的源代码示例。

一、直方图统计信息简介
直方图是一种用于展示数据分布的图形工具,它将数据按照不同的范围进行划分,并统计每个范围内的数据量。在MySQL中,直方图统计信息是通过收集数据列的值范围及其对应的行数来构建的。这些统计信息可以帮助查询优化器更好地理解数据分布情况,从而更精确地估计查询条件的选择性。

二、创建直方图统计信息
要使用直方图统计信息,首先需要确保MySQL的版本在8.0以上。然后,可以使用以下语句创建直方图统计信息:

ANALYZE TABLE table_name UPDATE HISTOGRAM column_name;

其中,table_name是要分析的表名,column_name是要分析的列名。这条语句将会收集并更新指定列的直方图统计信息。

三、查询直方图统计信息
一旦直方图统计信息被创建,我们可以使用以下语句查询直方图:


        
MySQL新版本特性之:`MySQL 8.0`的`直方图`:`Optimizer`如何使用`直方图`来优化查询。 在数据库领域,直方图是对列中数据分布情况的统计摘要。它将列中的值范围划分为若干个桶(buckets),并记录每个桶内值的数量或频率。为什么要使用直方图?传统的统计信息(如最小值、最大值、平均值等)对于 Optimizer 来说,在某些情况下提供的信息不足以做出最佳的查询计划。例如,如果列中的数据分布极不均匀,某些值的出现频率远高于其他值,简单的统计信息就无法准确反映这种偏差。直方图则可以更精细地刻画数据分布,帮助 Optimizer 做出更明智的决策。直方图的类型。 阅读详情

相关推荐

mysql之Innodb收集统计信息详解

统计信息是关于表和索引数据分布的元数据,帮助优化器估算不同执行计划的成本,并选择最优方案。准确的统计信息是 CBO (Cost-Based Optimizer) 做出明智决策的基础。参考:https://relph1119.github.io/mysql-learning-notes/#/mysql ,推荐理解本文之后去看原书,原书有一定深度需前后贯穿仔细理解。MySQL 查询优化器依赖于准确的统计信息来做出最佳的执行计划决策。对于 InnoDB 存储引擎,统计信息的收集至关重要,它是优化器的 “粮草”。

qq_43460315的博客 1503

海山数据库(He3DB)原理剖析:浅析OLAP数据库计算引擎中的统计信息

张步涛,中国移动云能力中心数据库产品部-OLAP数据库开发工程师。主要参与OLAP内核研发/湖仓一体研发相关工作。

weixin_42744640的博客 1894

*MySQL 8.0 JSON功能增强与直方图】- 开发者与DBA的福音

MySQL 在 5.7 就引入了 JSON 数据类型,但 8.0 做了革命性增强。而传统统计信息只保存平均值,不足以描述“非均匀分布”的情况。MySQL 8.0 不仅仅是一个性能优化版本,更是一次。MySQL 优化器在生成执行计划时,需要知道。,共同提升 MySQL 的智能化水平。对高偏态(skewed)数据特别有效。你可以为 JSON 内部的键建立。减少查询计划误判导致的全表扫描。可以走索引,性能大幅提升。提高优化器选择索引的准确率。分布,选择最优索引路径。查询时优化器会智能判断。

wangjinjin180的博客 737

统计信息与执行计划:数据库查看收集及慢查询排查实战

数据库优化的核心之一在于让优化器拿到准确的统计信息。统计信息相当于表与索引的数据画像,包括行数、不同值个数、直方图分布和索引页数,直接影响执行计划的生成质量。当统计信息缺失或过期时,优化器可能错误估算行数,导致该走索引却全表扫描、表关联顺序异常,最终表现为慢查询。工程实践中,DBA需要掌握主流数据库的统计信息查看与收集方法,合理设置采样率,结合自动收集与手动刷新策略,并在数据量剧增或数据倾斜后及时更新直方图。从巡检统计信息健康度入手,能有效预防大多数执行计划劣化问题,这也是数据库性能调优中性价比极高的基础工

weixin_30702441的博客 240

PostgreSQL统计信息调优:default_statistics_target如何修复SQL变慢

数据库查询优化器依赖统计信息来估算返回行数,从而选择最优执行计划。当统计信息粒度不足时,即使存在索引也可能因行数误判而走入嵌套循环,导致SQL从毫秒级退化到秒级。PostgreSQL通过default_statistics_target参数控制ANALYZE收集样本的精细程度,直接影响MCV高频值列表和直方图桶的数量。合理调整该参数能显著提升JOIN与WHERE条件的估算准确度,修复执行计划漂移引发的慢SQL。本文从统计信息与查询优化器的工作原理切入,结合一个订单JOIN用户表的真实案例,演示如何通过列级S

weixin_28741413的博客 266

ITOO-解决通过sql语句无法实现分页

1.无法实现分页原因 由于一些复杂业务,会用到多表联合查询,用到底层封装的sql语句分页查询,但是数据通过map等转换,最后传到前台的json串如下图格式 这样的json串显然无法满足分页的效果。 2.解决方案 既然json串数据有问题,可以查看能够分页的json串格式,如下图。 所以可以在通过map转换的同时,将size,num,total赋值。如下代码: //定义

Just Do It 748

MySQL索引优化:从回表、覆盖索引到优化器代价模型一次讲透

MySQL索引是提升查询性能的基石,但索引并不是建得越多越快。其底层B+树结构决定了二级索引命中后往往需要回表,当回表行数占比过高时,优化器可能放弃索引而选择全表扫描,这正是许多慢SQL的根源。理解回表代价模型、覆盖索引、索引下推与联合索引的最左前缀规则,才能解释为什么同一个查询在不同数据分布下性能差距巨大。实际业务中,无论是order by、group by还是深分页,索引设计都直接影响执行计划与Filesort开销;定期analyze table刷新统计信息、善用optimizer trace和直方图,

weixin_33483304的博客 337

【MySQL篇】MySQL8.0新特性

窗口函数(Window Function)允许在一组与当前行相关的行上计算值,不分组聚合(保留原表行数),适用于排名、累计统计等场景。,旧版本双写缓冲区刷新是串行的,而8.0可并行刷新多个页到双写缓冲区和数据文件,提升I/O效率;优势:对于非均匀分布列(如订单状态,大部分为“已完成”),直方图能让优化器准确判断行数,避免选错索引。是存储元数据(表结构、列信息、索引等)的事务性存储引擎(基于InnoDB),替代了旧版本的。:角色是权限的集合,适用于批量管理多个用户的权限(如给所有DBA授予相同权限)。

完全体 1005

mysql8.0与5.6的区别

新系统/新项目:优先选择 MySQL 8.0,享受更优的性能、更强的安全性和更丰富的功能,降低长期维护成本。旧系统迁移:若当前使用 MySQL 5.6 且无明显性能瓶颈,可暂不升级;但需注意 5.6 已于 2021 年停止官方支持(End of Life),不再提供安全补丁,长期来看存在安全风险,建议逐步迁移至 8.0。迁移时需重点测试SQL 兼容性(如窗口函数、CTE 的替代方案)认证机制(客户端升级)存储引擎(MyISAM 表迁移至 InnoDB),确保业务平滑过渡。

青鱼入云的博客 924

MySQL 8.0 COUNT(*) 性能优化实战:3种场景下的索引选择与执行计划分析

本文深入解析MySQL 8.0中COUNT(*)的性能优化策略,涵盖单表无WHERE条件、带WHERE条件及分组COUNT三种典型场景的索引选择与执行计划分析。通过实战案例展示如何利用复合索引、执行计划解读和高级优化技巧,显著提升查询性能,特别适合需要处理大数据量统计的开发者参考。

weixin_30855761的博客 410

数据库查询优化器原理与CBO实现深度解析

数据库查询优化器是SQL执行的核心组件,负责将逻辑查询转换为高效物理执行计划。基于代价的优化器(CBO)通过量化评估I/O、CPU、内存等资源消耗,选择代价最低的执行路径,其核心在于统计信息(如数据分布直方图)和代价模型。与传统规则优化器(RBO)相比,CBO能动态适应数据特征,解决索引误用等问题。在Oracle、MySQL等数据库中,CBO通过动态规划或遗传算法处理多表连接顺序,利用并行执行提升性能。实际工程中需关注统计信息准确性、执行计划稳定性控制,并通过优化器提示等手段干预特殊场景。理解CBO原理对J

weixin_32576389的博客 259

MySQL 成本优化器 (CBO) 深度解析

MySQL 成本优化器 (CBO) 是数据库性能优化的核心。理解 CBO 的工作原理,并结合以下几点,可以充分发挥 CBO 的优化能力:准确的统计信息合理的索引设计高效的 SQL 查询语句。

qq_43460315的博客 1684

Percona server 介绍及与mysql对比 及安装

提到 MySQL, 我们不得不说说其两大重要的时间点 2008 年 Sun 收购 MySQL AB 2010 年 Oracle 收购 Sun 在 MySQL 两次易主的过程中,开发者们普遍担心某一天 MySQL 会成为一个非开源的收费版本,所以在此期间出现了很多类 MySQL 的 RDBMS。然而到目前为止,主要有两个久经考验的 RDBMS 分别为:Percona server for MySQL 和 MariaDB。 今天我们主要来介绍下 Percona server for MySQL*** P

liuerchong的博客 1万+

MySQL多列统计信息的收集

使用"ANALYZE TABLE"语句可以方便地收集表的统计信息,并通过"SHOW INDEX"和"SHOW TABLE STATUS"语句查看结果。本文将介绍如何使用MySQL的统计信息收集功能,特别是针对多列的统计信息的收集。MySQL提供了一个名为"ANALYZE TABLE"的语句,用于收集表的统计信息。收集完统计信息后,你可以使用"SHOW INDEX"语句查看表的索引信息,并使用"SHOW TABLE STATUS"语句查看表的统计信息。首先,选择你希望收集统计信息的表。步骤2:收集统计信息。

带你成为别人眼中的大佬! 556

从源码看穿!MySQL 优化器是如何估算 SQL 语句的访问行数的?

Hello,数据库界的伙伴们!你有没有想过,MySQL 是怎么知道某条 SQL 语句大概会访问多少行数据的?这种能力不仅是个“炫技”的小把戏,实际上关系到查询优化器如何选择执行计划,是数据库性能优化的关键一环!本篇文章,我们将深入 MySQL 的源码,看看 MySQL 的优化器到底是如何估算 SQL 语句的访问行数的。放心,这篇文章会用通俗易懂的方式,带你理解这块“神秘领域”的核心原理和实现细节。在文章中,我们将逐步揭开统计信息、索引选择、代价模型、行数估算等关键点的实现原理,同时提供实战示例。

喵手的博客 920

拉曼光谱仪的原理与应用——TFN 7G F660手持式拉曼光谱识别仪

拉曼光谱仪的原理与应用——TFN 7G F660手持式拉曼光谱识别仪

TFN_yzgd的博客 926

SQL注入:联合查询的三个绕过技巧

在SQL注入中,可以利用科学计数法来绕过对输入的限制。例如,可以使用科学计数法来绕过对字符串长度的限制,通过将字符串拆分成多个部分并使用科学计数法来表示。此外,还可以利用数据库的特定特性或语法来替代原始的查询语句,从而执行联合查询或其他恶意操作。另外,还可以尝试利用无列名注入的技巧,通过在原始查询中使用通配符或其他方式来绕过对列名的限制,从而执行恶意操作。

qq_68163788的博客 3794

ETL基础概念及要求详解

ETL即Extract(抽取)Transform(转换)Load(装载)的过程,如下图,同时也包括数据清洗的部分,是数据从源端到目标端的一个数据处理的过程,是构建数据仓库的重要一环,但不局限于构建数据仓库其他BI(商业智能)的设计和开发数据分析平台也经常用到ETL。

qq_43605229的博客 8944

termux 安装 rockylinux

往找最新的文件目录,选择ARM版本的image。或者直接查看目录或者国内阿里云镜像,按照cpu架构(安卓9手机一般是aarch64arm最新架构),获取镜像地址,以及checksum里的SHA256信息更新到以下rocky9.sh脚本,如果不需要直接使用即可。

欢迎来到别往的博客 984

某讯天御滑块验证码逆向实战:从参数解析到环境对抗

本文详细解析了某讯天御滑块验证码的逆向工程实战技巧,从关键参数解析到浏览器环境模拟对抗。重点介绍了collect、eks等参数的逆向思路,以及如何通过puppeteer等工具补全环境检测,帮助开发者有效突破验证码防护。文章还提供了常见错误解决方案和性能优化建议,是验证码逆向领域的实用指南。

weixin_29325007的博客 437

YOLOv5实战:无人机巡检图片差异对比与违建标记(附完整代码)

本文详细介绍了如何利用YOLOv5目标检测技术实现无人机巡检图片差异对比与违建标记。通过图像对齐、目标检测、差异分析和可视化标记四个步骤,构建高效的违建识别系统,显著提升城市管理效率。文章包含完整代码实现和性能优化技巧,为计算机视觉在无人机巡检中的应用提供实用指南。

weixin_42535720的博客 282

从零开始跑通3DGS教程:(四)修改(缩放、空间变换)colmap生成的sfm结果

通过colmap进行的sfm的普通方式会丢失场景的物理尺度信息,并且并不在符合一般认知的坐标系下,本文将读取colmap生成的点云和相机pose,将其进行空间变换和缩放之后,重新保存,新保存的结果仍然可以被colmap读取以及进行后续的稠密重建以及3dgs等工作

诺有缸的高飞鸟的博客 1424

端侧 AI 落地避坑指南(中):为什么 QAT 救不了精度?——对齐“融合后算子“的硬件物理约束

在上一篇文章中,我们深入探讨了量化的本质,并得出结论:QAT(量化感知训练)是保持精度的关键。明明做了 QAT,精度还是崩塌了!让我们看一个真实的案例:✅ 使用了✅ 配置了量化✅ 训练了 50 个 epoch,学习率降为原来的 1/10✅ 冻结了 BN 统计量FP32 模型:mAP = 0.85QAT 后 FP32:mAP = 0.84(正常)工具量化后:mAP = 0.68(崩塌!问题出在哪里?层融合(Layer Fusion)机制。

weixin_51988935的博客 55

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: MySQL Router高可用搭建:实现数据库的高可用性
下一篇: 在Red Hat操作系统上安装Oracle Grid Infrastructure和Real Application Clusters (RAC)环境的数据库是
普通网友
博客等级 码龄3年 16粉丝 160原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值