云数据库 TaurusDB
云数据库 TaurusDB
- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
- 内核介绍
- 用户指南
- 最佳实践
- 性能白皮书
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
API(推荐)
- 查询数据库引擎的版本
- 查询数据库规格
-
实例管理
- 创建数据库实例
- 重启数据库实例
- 删除/退订数据库实例
- 创建只读节点
- 删除/退订只读节点
- 包年/包月实例存储扩容
- 修改实例名称
- 重置数据库密码
- 变更实例规格
- 查询专属资源池列表
- 查询专属资源信息详情
- 设置实例秒级监控
- 查询实例秒级监控
- 节点重启
- 内核版本升级
- 开关SSL
- 绑定弹性公网IP
- 解绑弹性公网IP
- 手动主备倒换
- 设置可维护时间段
- 修改安全组
- 修改内网地址
- 修改实例端口
- 修改实例备注
- 申请内网域名
- 修改内网域名
- 查询内核版本信息
- 设置自动变配
- 查询自动变配
- 资源预校验
- 查询实例列表
- 查询实例详情信息
- 批量查询实例详情
- 设置回收站策略
- 查询回收站策略
- 查询回收站实例信息
- 批量修改节点名称
- 查询自动变配历史记录
- 设置Serverless配置策略
- 修改节点故障倒换优先级
- 查询弹性公网IP
- 备份管理
- 参数模板管理
- 配额管理
- 数据库代理
- 日志管理
- 标签管理
- 数据库用户管理
- 数据库管理
- 流量管理
- 任务中心
- 智能诊断
-
HTAP-标准版
- 恢复StarRocks数据同步
- 暂停StarRocks数据同步
- HTAP数据同步表配置校验
- 创建StarRocks实例
- 查询StarRocks实例
- 删除StarRocks实例
- 重启StarRocks实例
- 重启StarRocks节点
- StarRocks资源检查
- HTAP引擎资源查询
- 获取HTAP实例存储类型
- HTAP查询规格信息
- 查询HTAP实例列表
- 创建StarRocks数据同步
- 删除StarRocks数据同步
- 查询StarRocks数据同步状态信息
- HTAP数据同步库配置校验
- 查询StarRocks数据同步配置信息
- 查询StarRocks数据同步的库参数配置
- 查询StarRocks数据库
- 查询数据库账号
- 创建数据库账号
- 删除数据库账户
- 修改数据库账号密码
- 修改数据库账号权限
- StarRocks实例规格变更
- 查询参数
- 修改参数
- StarRocks实例开启行列分流
- 参数对比
- StarRocks内核版本升级
- 多租特性
- API(即将下线)
- 权限策略和授权项
- 附录
- SDK参考
- 常见问题
-
故障排除
- 备份恢复
- 连接类
-
SQL类
- 建表时timestamp字段默认值无效
- 索引长度限制导致修改varchar长度失败
- delete大表数据后,再查询同一张表时出现慢SQL
- 更新emoji表情数据报错Error 1366
- 存储过程和相关表字符集不一致导致执行缓慢
- 报错ERROR [1412]的解决方法
- 存在外键的表无法删除
- GROUP_CONCAT结果不符合预期
- 创建二级索引报错Too many keys specified
- distinct与group by优化
- 为什么有时候用浮点数做等值比较查不到数据
- 开通数据库代理后,还是有大量select请求分发到主节点
- 表空间膨胀问题
- MySQL创建用户提示服务器错误(ERROR 1396)
- 执行alter table xxx discard/import tablespace报错
- 数据库报错Native error 1461的解决方案
- 创建表失败报错Row size too large的解决方案
- Order by limit分页出现数据重复问题
- 执行select * from sys.innodb_lock_waits报错
- 参数类
- 性能资源类
-
基本使用类
- 查看TaurusDB的存储容量
- 修改库名和修改表名
- 字符集和字符序的默认选择方式
- 自增字段值跳变的原因
- 表的自增AUTO_INCREMENT初值与步长
- 修改表的自增AUTO_INCREMENT值
- 自增主键达到上限,无法插入数据
- 自增字段取值
- 自增属性AUTO_INCREMENT为何未在表结构中显示
- 空用户的危害
- 慢日志显示SQL语句扫描行数为0
- 错误日志页面显示handle_sync_msg_from_slave my_net_read error:-1
- 执行SQL语句报错:ERROR 1290 (HY000): The MySQL server is running with the --sql-replica-on option so it cannot execute this statement的原因及解决方案
- 通用参考
本文导读
展开导读
链接复制成功!
注意事项
- 建议云数据库TaurusDB的引擎版本需要为2.0.45.230900及以上。
- 只读节点和主节点均支持并行查询,由于并行查询对计算资源(CPU、内存等)比较消耗,考虑到实例稳定性,云数据库TaurusDB的内核版本为2.0.42.230600及以上时,并行查询默认在主节点不生效,如需使用,请在管理控制台右上角,选择“工单 > 新建工单”,提交申请。
- 并行查询支持的场景:
- 支持全表扫描、索引扫描、索引范围扫描、索引逆序扫描、索引点查询、索引下推等。
- 支持单表查询、多表JOIN、视图VIEW、子查询,部分CTE查询等。
- 支持多种JOIN算法,包括:BNL JOIN、BKA JOIN、HASH JOIN、NESTED LOOP JOIN、SEMI JOIN、ANTI JOIN、OUTER JOIN等。
- 支持多种子查询,包括:条件子查询、SCALAR子查询、部分关联子查询、非关联子查询、DERIVED TABLE等。
- 支持多种数据类型,包括:整型数据、字符型数据、浮点型数据、时间型数据等。
- 支持算术表达式计算(+、-、*、%、/、|、&),条件表达式运算(<、<=、>、>=、<>、BETWEEN/AND、IN等),逻辑运算(OR、AND、NOT等),一般函数(字符函数、整型函数、时间函数等),聚合函数(COUNT/SUM/AVG/MIN/MAX)等等。
说明:
COUNT聚合函数需关闭“innodb_parallel_select_count”才能并行执行。
- 支持非分区表查询、分区表单分区查询。
- 支持排序ORDER BY、分组GROUP BY/DISTINCT、分页LIMIT/OFFSET、过滤WHERE/HAVING、列投影等。
- 支持UNION/UNION ALL查询。
- 支持通过EXPLAIN语句查看并行执行计划,包括传统EXPLAIN,以及MySQL 8.0新引入的EXPLAIN FORMAT=TREE、EXPLAIN ANALYZE、EXPLAIN FORMAT=JSON,其中2.0.60.241200版本开始支持EXPLAIN ANALYZE。
- 并行查询不支持的场景:
- 非查询语句
- 窗口函数
- 触发器
- PREPARED STATEMENTS
- 空间索引
- 查询表为系统表/临时表/非INNODB表
- 使用全文索引
- 存储过程
- 不能转换成SEMIJOIN的子查询
- 不满足ONLY_FULL_GROUP_BY
- 使用索引归并INDEX MERGE
- HASH JOIN溢出到磁盘
- 加锁查询,如SERIALIZABLE隔离级别,FOR UPDATE/SHARE LOCK
- 递归查询
- WITH ROLLUP
- 存在HIGH_PRIORITY关键字
- 执行结果返回0行数据(执行计划显示:Zero limit、Impossible WHERE、Impossible HAVING、No matching min/max row、Select tables optimized away、Impossible HAVING noticed after reading const tables、no matching row in const table等)
- 查询中包含zerofill的列,并且这些列能被优化为常量
- generated column、BLOB、TEXT、JSON和GEOMETRY
- Spatial相关函数(如SP_WITHIN_FUNC等)
- aggregation(distinct),如sum(distinct)、avg(distinct)、count(distinct)
- GROUP_CONCAT
- JSON_ARRAYAGG/JSON_OBJECTAGG
- 用户自定义函数
- STD/STDDEV/STDDEV_POP
- VARIANCE/VAR_POP/VAR_SAMP
- BIT_AND, BIT_OR and BIT_XOR
- set_user_var
- rand(不含参数的除外)
- json_*(如json_length,json_type等)
- st_distance
- get_lock
- is_free_lock,is_used_lock,release_lock, release_all_locks
- sleep
- xml_str
- weight_string
- ref函数(VIEW_REF, OUTER_REF, AGGREGATE_REF),
- SHA,SHA1,SHA2,MD5
- row_count
- user相关函数(user, current_user, session_user, system_user等)
- 函数extractvalue
- 函数GeomCollection,GeometryCollection,LineString,MultiLineString,MultiPoint,MultiPolygon,Polygon
- 函数MASTER_POS_WAIT
- 空间关系函数(MBRContains,MBRCoveredBy,MBRCovers,MBRDisjoint,MBREquals,MBRIntersects, MBROverlaps, MBRTouches,MBRWithin)
- 函数Point
- 函数PS_CURRENT_THREAD_ID()
- 函数PS_THREAD_ID(CONNECTION_ID())
- 函数WAIT_FOR_EXECUTED_GTID_SET
- 函数WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS
- 函数UNCOMPRESS(COMPRESS())
- 函数STATEMENT_DIGEST_TEXT
- 函数BINARY、函数CONVERT
- ST_开头的函数匀不支持
- 并行执行的执行结果可能存在与串行执行不兼容的情况,主要表现在:
- 错误或者告警提示次数可能会增多
对于在串行执行中出现错误/告警提示的查询,在并行执行情况下,每个工作线程可能都会提示错误/告警,导致总体错误/告警提示数会增多。
- 精度问题
并行执行的执行过程中,当select的内容是函数类型时,会比非并行执行多出中间结果的存储过程,可能会导致浮点部分精度差别,导致最终结果有细微的差别。
- 截断问题
并行执行的执行过程中,当select的内容是函数类型时,会比非并行执行多出中间结果的存储过程。在这个过程中,需要缓存函数的计算结果,可能出现截断(一般是类型转换导致的,例如浮点数类型转为字符串等), 导致最终结果与串行结果有差别。
- 结果集顺序差别
因为是多个工作线程执行查询,返回的结果集可能与非并行执行顺序不一致。在具有LIMIT查询的情况下,更容易出现与串行结果顺序不同的现象。对于不可见字符,当MySQL判断多个不可见字符相等时,可能会出现结果集顺序不同,或者group by字段不同的现象。
- union all结果集差别
union all会忽略其中的排序算子,并行执行下返回的结果集顺序可能与非并行不一致。在有limit查询的情况下,会出现结果集不同的现象。
- 错误或者告警提示次数可能会增多
父主题: 并行查询(PQ)