Oceanbase和TiDB粗浅对比之 - 执行计划

一、前言

         OceanBase和TiDB作为国内2款的比较流行的兼容MySQL协议的开源数据库使用者也越来越多,两种数据库不仅在架构原理上有较大差异,在开源方式上有较大的不同:

         TiDB 采用的Apache License 2.0开源协议,其第一行代码提交就是在github上,和企业版相比社区版只是不包含访问白名单和审计2个插件功能,其他与企业版完全相同且同步发版(之前闭源的tiflash也于2022.4.1完全开源)。

         OceanBase社区版采用国内的木兰公共协议 MulanPubL-2.0开源,官方划分成社区版、云服务版、企业版三种类型,开源的社区版与企业版相比存在较多功能缺失或性能降低(如目前对比版本不支持oracle兼容、不支持闪回、不支持analyze语句、ocp不支持备份功能等),且社区版本版发布与企业版不同步。另外ob的文档和资源相比较tidb还不够完善和丰富。

       本文针对tidb、oceanbase在执行计划的相关内容进行粗浅的对比,也对学习做个总结,对比版本为OceanBase3.1.2-CE(2022-03-29发版 )、TiDB v5.2.3(2021-12-31发版)

二、查看执行计划

  •  TiDB:

(1)    explain SQL方式:该方式只是展示可能的执行计划并非实际的执行计划,目前各数据库都存在此问题使用explain方式并不是真正SQL执行时的计划,少数情况下会存在不一致。

(2)    explain analyze方式:该方式会真正执行SQL并展示执行时的执行计划,执行计划中增加实际的执行信息包括实际返回行数、各算子时间和调用及资源消耗等。

(3)    select tidb_decode_plan()方式: tidb的慢SQL日志里会以hash值方式记录慢SQL的执行计划,然后使用tidb_decode_plan()函数即可解析。

(4)    dashboard查看:tidb的PD组件包含dashboard功能,慢SQL、SQL统计页面可以查看每个SQL的执行计划

  • OceanBase:

(1)    explain SQL方式:包含BASIC、OUTLINE、EXTENDED、EXTENDED_NOADDR、PARTITIONS、FORMAT = {TRADITIONAL| JSON}多个展示选项,除了extended方式大部分情况展示的内容基本一致,extended方式时会增加hint、outline、plan type、optimizerinfo等信息。

(2)    使用系统视图方式:oceanbase在实现上一直努力方便oracle dba使用,通过v$plan_cache_plan_explain/ v$plan_cache_plan_stat等视图可以查看执行计划及算子的执信息(如行数、时间等),类似oracle的v$sql、v$sql_plan等视图

(3)    因未部署ob 图形化管理平台ocp,因此未看SQL执行计划的页面展示。

三、执行计划内容

  • TiDB:

         TiDB的执行计划展示与oracle类似,以缩进的方式展示算子间的层次关系,同时使用折线进行算子连接展示,当SQL复杂执行步骤较多时可以很明显看出处于同一缩进深度的算子,explian方式下执行计划包括算子信息(id列)、预估行数(estRows列),访问对象(access object列)、过滤条件和操作信息(operator info列)

         使用explain analyze或查看慢SQL中记录的执行计划时还包括每个算子实际的返回行数(actRows列)、算子的执行时间和分布统计(execution info列)、内存占用(memory)、磁盘读(dsik)

execution info列展示的内容如下:

tikv_task:{proc max:640ms, min:120ms, p80:260ms, p95:470ms, iters:4859, tasks:27}, scan_detail: {total_process_keys: 4861956, tota

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值