检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
慢日志显示SQL语句扫描行数为0 场景描述 查询慢日志中记录SQL执行65秒,但是扫描行数为0。 原因分析 被中断的查询超过慢日志设置阈值也会记录慢日志,但是所记录的扫描行数为0。客户JDBC连接设置了查询超时: 解决方案 优化SQL或者将sockTimeOut设置合理值。 父主题:
慢日志显示SQL语句扫描行数为0 场景描述 查询慢日志中记录SQL执行65秒,但是扫描行数为0。 原因分析 被中断的查询超过慢日志设置阈值也会记录慢日志,但是所记录的扫描行数为0。客户JDBC连接设置了查询超时: 解决方案 优化SQL或者将sockTimeOut设置合理值。 父主题:
特性支持场景 并行查询支持以下场景: 支持全表扫描、索引扫描、索引范围扫描、索引逆序扫描、索引点查询、索引下推等。 支持单表查询、多表JOIN、视图view、子查询,部分CTE查询等。 支持多种JOIN算法,包括:BNL Join、BKA Join、HASH Join、Nested
Backward Index Scan Backward Index Scan为反向索引扫描,可以通过反向扫描索引的方式消除排序,由于反向扫描与其他一些特性(例如: Index Condition Pushdown(ICP))不兼容,导致优化器选择Backward Index Scan后出现性能劣化的情况。
Backward Index Scan Backward Index Scan为反向索引扫描,可以通过反向扫描索引的方式消除排序,由于反向扫描与其他一些特性(例如: Index Condition Pushdown(ICP))不兼容,导致优化器选择Backward Index Scan后出现性能劣化的情况。
对于多表连接+DISTINCT场景,MySQL 8.0需要扫描表连接后的结果,当表连接数量多或基表数据量大时,需要扫描的数据量很大,导致执行效率很低。 为了提升DISTINCT,尤其多表连接下DISTINCT的查询效率,TaurusDB在执行优化器中加入了剪枝功能,可以去除不必要的扫描分支,提升查询性能。 适用场景
对于多表连接+DISTINCT场景,MySQL 8.0需要扫描表连接后的结果,当表连接数量多或基表数据量大时,需要扫描的数据量很大,导致执行效率很低。 为了提升DISTINCT,尤其多表连接下DISTINCT的查询效率,TaurusDB在执行优化器中加入了剪枝功能,可以去除不必要的扫描分支,提升查询性能。 适用场景
canal工具报错权限不足 场景描述 在搭建canal环境,使用指定用户从TaurusDB获取Binlog时,启动canal经常会报如下错误:'show master status' has an error! Access denied: you need (at least one
canal工具报错权限不足 场景描述 在搭建canal环境,使用指定用户从TaurusDB获取Binlog时,启动canal经常会报如下错误:'show master status' has an error! Access denied: you need (at least one
使用mysqlbinlog工具获取binlog 本文以从弹性云服务器ECS上拉取为例,其他环境下方法类似。 在ECS上安装MySQL客户端,详情请参考安装MySQL客户端。 TaurusDB兼容社区MySQL 8.0及以上版本,请勿安装8.0以下版本的版本的客户端。 执行命令,下载binlog文件。
certification path to requested target 原因分析 从错误截图中可以看出,使用的是mariadb的jar包,而非MySQL的官方驱动包,而mariadb与官方的使用方法略有区别。 解决方案 对于mariadb的连接串应该为: String url = "jdbc:mysql://xxx
使用mysqlbinlog工具获取binlog 本文以从弹性云服务器ECS上拉取为例,其他环境下方法类似。 在ECS上安装MySQL客户端,详情请参考安装MySQL客户端。 TaurusDB兼容社区MySQL 8.0及以上版本,请勿安装8.0以下版本的版本的客户端。 执行命令,下载binlog文件。
certification path to requested target 原因分析 从错误截图中可以看出,使用的是mariadb的jar包,而非MySQL的官方驱动包,而mariadb与官方的使用方法略有区别。 解决方案 对于mariadb的连接串应该为: String url = "jdbc:mysql://xxx
分析对应时间段该实例的慢日志,该SQL执行快时其扫描行数为百万级,当SQL执行慢时其扫描行数为千万级,与业务确认该表短期内并无大量数据插入,因此推断执行慢是因为未走索引或选错索引。且通过EXPLAIN查看该SQL的执行计划确实是全表扫描。 图2 慢日志 在实例上对该表执行SHOW INDEX
分析对应时间段该实例的慢日志,该SQL执行快时其扫描行数为百万级,当SQL执行慢时其扫描行数为千万级,与业务确认该表短期内并无大量数据插入,因此推断执行慢是因为未走索引或选错索引。且通过EXPLAIN查看该SQL的执行计划确实是全表扫描。 图2 慢日志 在实例上对该表执行SHOW INDEX
InnoDB逻辑读速率 登录实例,查看实话会话,发现大量会话在执行SELECT COUNT(*)。 EXPLAIN确认该SQL的执行计划,发现走全表扫描且单条扫描行数在35万+,其并未走索引。 进一步查看该表的表结构,发现该表仅对字段“is_deleted”添加了一个索引“IDX_XX_USER
InnoDB逻辑读速率 登录实例,查看实话会话,发现大量会话在执行SELECT COUNT(*)。 EXPLAIN确认该SQL的执行计划,发现走全表扫描且单条扫描行数在35万+,其并未走索引。 进一步查看该表的表结构,发现该表仅对字段“is_deleted”添加了一个索引“IDX_XX_USER
[mysql-connector-java8.0.17.jar:8.0.17] ... 68 common frames omitted 解决方法 您可以在3中的代码链路中,根据客户端使用的Jar包指定对应参数值进行连接。示例如下: mysql-connector-java-5.1.xx.jar(对于8.0.18及
[mysql-connector-java8.0.17.jar:8.0.17] ... 68 common frames omitted 解决方法 您可以在3中的代码链路中,根据客户端使用的Jar包指定对应参数值进行连接。示例如下: mysql-connector-java-5.1.xx.jar(对于8.0.18及
[mysql-connector-java8.0.17.jar:8.0.17] ... 68 common frames omitted 解决方法 您可以在3中的代码链路中,根据客户端使用的Jar包指定对应参数值进行连接。示例如下: mysql-connector-java-5.1.xx.jar(对于8.0.18及