详情页标题前

腾讯云TDSQL-C MySQL版支持的语句场景和受限场景

详情页1

本文介绍并行查询能力支持的语句场景和受限场景。

兼容语句场景

TDSQL-C MySQL 版已经实现了具备如下特征的 SQL 语句的并行查询处理,并在逐渐完善更多的功能场景。对于单表扫描:支持全表扫描、索引扫描、索引范围扫描、索引 REF 查询等扫描类型的正序、逆序扫描。对于多表连接:支持 Nested Loop Join 算法以及 Semi Join、Anti Join、Outer Join 等连接类型。对于子查询:支持 derived table 的并行。对于数据类型:支持带多种数据类型的查询,包括整型数据、字符型数据、浮点型数据、时间类型数据、以及(有运行时大小限制的)溢出类型数据。普通运算符和函数原则上不限。聚合函数支持 COUNT/SUM/AVG/MIN/MAX。支持 UNION/UNION ALL 查询。支持 traditional(默认格式)、json 和 tree 三种 EXPLAIN 格式。对应语句的性能提升
SF=100,Dop=16设置下,加速比如下。
SUM/AVG/COUNT 等聚合函数。

SELECT l_returnflag, l_linestatus, Sum(l_quantity) AS sum_qty, Sum(l_extendedprice) AS sum_base_price, Sum(l_extendedprice * (1 - l_discount)) AS sum_disc_price, Sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge, Avg(l_quantity) AS avg_qty, Avg(l_extendedprice) AS avg_price, Avg(l_discount) AS avg_disc, Count(*) AS count_order FROM lineitem WHERE l_shipdate <= date '1998-12-01' - INTERVAL '93' day GROUP BY l_returnflag, l_linestatus ORDER BY l_returnflag, l_linestatus ;

未开启并行查询执行时间为1376.96秒,开启并行查询执行时间为107.25秒,加速倍数可以达到12.84倍。order by/group by 分组/排序语句。

SELECT l_returnflag, l_linestatus, Sum(l_quantity) AS sum_qty, Sum(l_extendedprice) AS sum_base_price, Sum(l_extendedprice * (1 - l_discount)) AS sum_disc_price, Sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge, Avg(l_quantity) AS avg_qty, Avg(l_extendedprice) AS avg_price, Avg(l_discount) AS avg_disc, Count(*) AS count_order FROM lineitem WHERE l_shipdate <= date '1998-12-01' - INTERVAL '93' day GROUP BY l_returnflag, l_linestatus ORDER BY l_returnflag, l_linestatus ;

未开启并行查询执行时间为1376.96秒,开启并行查询执行时间为107.25秒,加速倍数可以达到12.84倍。Join/Between/In 语句

select sum(l_extendedprice* (1 - l_discount)) as revenue from lineitem, part where ( p_partkey = l_partkey and p_brand = 'Brand#12' and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') and l_quantity >= 6 and l_quantity <= 6 + 10 and p_size between 1 and 5 and l_shipmode in ('AIR', 'AIR REG') and l_shipinstruct = 'DELIVER IN PERSON' ) or ( p_partkey = l_partkey and p_brand = 'Brand#13' and p_container in ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') and l_quantity >= 10 and l_quantity <= 10 + 10 and p_size between 1 and 10 and l_shipmode in ('AIR', 'AIR REG') and l_shipinstruct = 'DELIVER IN PERSON' ) or ( p_partkey = l_partkey and p_brand = 'Brand#24' and p_container in ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') and l_quantity >= 21 and l_quantity <= 21 + 10 and p_size between 1 and 15 and l_shipmode in ('AIR', 'AIR REG') and l_shipinstruct = 'DELIVER IN PERSON' ); 

未开启并行时查询时间为20.55秒,开启并行查询后加速时间为1.87秒,加速倍数可以达到11倍。

受限场景

TDSQL-C MySQL 版并行查询能力不支持的场景如下。

限制项 限制说明
语句兼容性限制 非查询语句不支持并行查询,包括 INSERT … SELECT 和 REPLACE … SELECT。
stored program 中的查询语句无法并行。
prepared statement 中的查询语句无法并行。
串行化隔离级别事务内的查询语句无法并行。
加锁读语句无法并行,如 select for update/share lock。
CTE 无法并行。
表/索引兼容性限制 查询表为系统表/临时表/非 Innodb 表时无法并行。
空间索引无法并行。
全文索引无法并行。
分区表无法并行。
扫描方式为 index_merge 的表无法并行。
表达式/Field 兼容性限制 包含 Generated Column 、BLOB、TEXT、JSON、BIT 和 GEOMETRY 字段的表无法并行。
BIT_AND、BIT_OR、BIT_XOR 类型的聚合函数无法并行。
aggregation(distinct),如 SUM(DISTINCT)、COUNT(DISTINCT) 等聚合函数无法并行。
GIS 相关函数(如 SP_WITHIN_FUNC、ST_DISTANCE 等)无法并行。
用户自定义函数无法并行。
json 相关的函数无法并行(如 json_length,json_type,JSON_ARRAYAGG 等)。
XML 相关函数无法并行(xml_str)。
用户锁相关的函数无法并行(is_free_lock,is_used_lock,release_lock, release_all_locks,get_lock)。
sleep 函数、random 函数、GROUP_CONCAT 函数、set_user_var 函数、weight_string 函数无法并行。
部分统计相关函数(STD/STDDEV/STDDEV_POP,VARIANCE/VAR_POP/VAR_SAMP)无法并行。
子查询无法并行。
窗口函数无法并行。
rollup 无法并行。

除了通过 并行查询兼容语句场景 可以查询到语句是否被执行并行查询外,您还可以通过查看并行查询执行计划与查看线程工作状态查询,详情参见 查看并行查询
官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:http://www.yunxiaoer.com/141076.html

(0)
上一篇 2023年12月9日 上午1:16
下一篇 2023年12月9日 上午1:16
详情页2

相关推荐

  • 腾讯云容器服务Pod 使用 CAM 对数据库身份验证同尘科技

    使用背景 在腾讯云托管集群中运行容器化的工作负载时,通常需要访问存储在 Kubernetes 集群之外的一个或多个 SQL 或 NoSQL 数据库,但是将 SQL 数据库与 Kubernetes 一起使用时,存在定期轮换凭证和敏感信息传递到 Kubernetes 集群中的问题。为此,借助凭据管理系统(SSM)和腾讯云访问控制管理(CAM)来简化访问腾讯云数据…

    2023年12月9日
  • 腾讯云TDSQL-C MySQL版下载和解压备份

    TDSQL-C MySQL 版控制台提供备份的文件列表,并可以下载逻辑备份文件,通过下载的备份文件可将数据库恢复到自建或其他云厂商提供的数据库。 支持下载/解压/删除的文件类型 分类 备份类型  方式 下载 下载后是否需解压 删除 数据备份 逻辑备份 全量备份 手动 ✓ ✓ ✓    自动 ✓ ✓ ✓ binlog 备份 binlog 备份 增量备份…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云对象存储盲水印概述

    概述 盲水印功能基于腾讯云数据万象,是一种全新的水印模式。通过该功能,您可将水印图以不可见的形式添加到原图信息中,并不会对原图质量产生太大影响。在图片被盗取后,您可对疑似被盗取的资源进行盲水印提取,验证图片归属。盲水印功能拥有半盲、全盲和文字盲水印三种类型: 水印类型 特性 适用场景 半盲水印(type1) 抗攻击性强,但提取水印需原图 小图(640&#21…

    腾讯云 2023年12月9日
  • 腾讯云TDSQL-C MySQL版概述

    当集群中的某个表或数据被误删或误修改,需要将其恢复到原有状态时,可以选择将数据恢复至原集群。TDSQL-C MySQL 版库表级别的恢复,支持按时间点和备份集的方式进行。选择按时间点恢复,时间点的选择范围由用户设置的日志保留时长决定。选择按备份集恢复,备份文件选择范围由用户设置的数据备份保留时长决定。创建集群后,系统默认开启自动备份,根据日志生成速率等因素,…

    2023年12月9日
  • 腾讯云云函数(SCF)部署方法-云淘科技

    部署方法 Golang 环境的云函数,仅支持 zip 包上传,您可以选择使用本地上传 zip 包或通过 COS 对象存储引用 zip 包。zip 包内包含的应该是编译后的可执行二进制文件。 编译打包 Golang 编译可以在任意平台上通过指定 OS 及 ARCH 完成跨平台的编译,因此在 Linux,Windows 或 MacOS 下都可以进行编译。在 Li…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。