检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
慢日志显示SQL语句扫描行数为0 场景描述 查询慢日志中记录SQL执行65秒,但是扫描行数为0。 原因分析 被中断的查询超过慢日志设置阈值也会记录慢日志,但是所记录的扫描行数为0。客户JDBC连接设置了查询超时: 解决方案 优化SQL或者将sockTimeOut设置合理值。 父主题:
特性支持场景 并行查询支持以下场景: 支持全表扫描、索引扫描、索引范围扫描、索引逆序扫描、索引点查询、索引下推等。 支持单表查询、多表JOIN、视图view、子查询,部分CTE查询等。 支持多种JOIN算法,包括:BNL Join、BKA Join、HASH Join、Nested
Backward Index Scan为反向索引扫描,可以通过反向扫描索引的方式消除排序,由于反向扫描与其他一些特性(例如: Index Condition Pushdown(ICP))不兼容,导致优化器选择Backward Index Scan后出现性能劣化的情况。 为了解决上面的问题,GaussDB(for
QL 8.0需要扫描表连接后的结果,当表连接数量多或基表数据量大时,需要扫描的数据量很大,导致执行效率很低。 为了提升DISTINCT,尤其多表连接下DISTINCT的查询效率,GaussDB(for MySQL)在执行优化器中加入了剪枝功能,可以去除不必要的扫描分支,提升查询性能。
CPU使用率 分析对应时间段该实例的慢日志,该SQL执行快时其扫描行数为百万级,当SQL执行慢时其扫描行数为千万级,与业务确认该表短期内并无大量数据插入,因此推断执行慢是因为未走索引或选错索引。且通过EXPLAIN查看该SQL的执行计划确实是全表扫描。 图2 慢日志 在实例上对该表执行SHOW
canal工具报错权限不足 场景描述 在搭建canal环境,使用指定用户从GaussDB(for MySQL)获取Binlog时,启动canal经常会报如下错误:'show master status' has an error! Access denied: you need (at
mysqlbinlog的常用参数: -h:数据库host。 -u:用户名。 -P:端口号。 -p:密码。 --start-position:表示从指定的起始位置开始解析。 --start-datetime:表示从指定的时间开始解析。 --stop-position:表示解析到指定的位置。 -
登录实例,查看实话会话,发现大量会话在执行SELECT COUNT(*)。 EXPLAIN确认该SQL的执行计划,发现走全表扫描且单条扫描行数在35万+,其并未走索引。 进一步查看该表的表结构,发现该表仅对字段“is_deleted”添加了一个索引“IDX_XX_USERID”,因此上述查询无索引可
MySQL)实例需要适时进行操作系统更新,以提高数据库性能和数据库的整体安全状况。 实例内核版本升级时,云数据库 GaussDB(for MySQL)会根据操作系统的实际情况,决定是否更新以及更新适合的操作系统冷补丁版本。 操作系统更新不会更改数据库实例的版本或数据库实例信息。 此外,云数据库 GaussDB(for
MySQL)是华为自研的最新一代企业级高扩展高性能云原生数据库,完全兼容MySQL。基于华为最新一代DFV存储,采用计算存储分离架构,128TB的海量存储,故障秒级切换,既拥有商业数据库的高可用和性能,又具备开源低成本效益。 本文将为您介绍云数据库 GaussDB(for MySQL)的版本生命周期及升级策略。
CPU使用率高的解决方法 使用云数据库GaussDB(for MySQL)时,如果您的CPU使用率很高或接近100%,会导致数据读写处理缓慢、无法获取连接、出现报错等,从而影响业务正常运行。 解决方案 通过查看慢SQL日志来确定是否存在运行缓慢的SQL查询以及各个查询的性能特征(如果有),从而定位查询运行缓慢的原因。
并行执行的执行过程中,当select的内容是函数类型时,会比非并行执行多出中间结果的存储过程,可能会导致浮点部分精度差别,导致最终结果有细微的差别。 截断问题 并行执行的执行过程中,当select的内容是函数类型时,会比非并行执行多出中间结果的存储过程。在这个过程中,需要缓存函数的计算结果,可能出现
上分别建立唯一索引。 即使在应用层做了完善的校验控制,只要没有唯一索引,根据墨菲定律,必然有脏数据产生。 同时需要考虑建立的唯一索引对查询是否真正有帮助,没有帮助的索引可以考虑删除; 需要考虑多建立的索引对插入性能的影响,根据唯一性相关的数据正确性需求,以及性能需求来权衡是不是需要多建立唯一性索引。
得预期的结果需要访问大量的数据导致平均IO高,因此在QPS并不高的情况下(例如网站访问量不大),也会导致实例的CPU使用率偏高。 解决方案: 根据CPU使用率过高的时间点,查看对应时间段的慢日志信息。 重点关注扫描行数、返回结果行数超过百万级别的慢查询,以及锁等待时间长的慢查询。
基本使用类 查看GaussDB(for MySQL)的存储容量 修改库名和修改表名 字符集和字符序的默认选择方式 自增字段值跳变的原因 表的自增AUTO_INCREMENT初值与步长 修改表的自增AUTO_INCREMENT值 自增主键达到上限,无法插入数据 自增字段取值 自增属
间隔不超过一天)内的TOP SQL执行耗时分布。 单击执行耗时分布图上的某个点或拖动框选某段时间,查看对应SQL模板统计数据。 单击,可导出当前列表里显示的TOP SQL信息。此功能仅限已升级高级智能运维包的实例使用,未升级的实例暂不支持导出功能。 单击操作栏的“详情”按钮,可以
监控项说明 监控项 说明 监控项异常的处理建议 相关案例 CPU使用率 (%) 该指标用于统计测量对象的CPU使用率。 评估业务SQL的执行计划,添加索引避免全表扫描。 扩容CPU规格,满足计算型业务需求。 GaussDB(for MySQL) CPU使用率高的解决方法 内存使用率 (%)
mysqldump的6大使用场景的导出命令 背景描述 mysqldump是MySQL最常用的逻辑导入导出的工具,下面介绍几种常见使用场景。 mysqldump选项解析 表1 配置项说明 选项名称 说明 add-drop-table 每个数据表创建之前添加drop数据表语句。 events,E
过程中需要的最大内存。如果IN后面的list非常大,使用的内存会超过定义的最大内存,会使得Range scan失效,从而引发查询的性能下降。如果想解决该问题,可以调大允许使用的最大内存,但是该内存是session级别的,也就是说每个session进行该查询都会占用同样的内存,所以
如何查看GaussDB(for MySQL)数据库的死锁日志 数据库的死锁日志不会记录在错误日志中,您可以通过数据管理服务(Data Admin Service,简称DAS)这款可视化的专业数据库管理工具,快速执行SQL语句查看。 操作步骤 登录管理控制台。 单击管理控制台左上角的,选择区域和项目。 在页面左上角单击,选择“数据库