【OceanBase诊断调优】—— 如何缩短OceanBase 数据库执行 count(*) 的时间

本文介绍影响 OceanBase 数据库执行 count(*) 时间的因素以及缩短 count(*) 执行时间的方法。

适用版本

OceanBase 数据库所有版本

执行 count(*) 的时间

OceanBase 数据库中,执行 count(*) 的时间不仅与选择的行数,还与行的长度相关。这是由于对主表的扫描代价与行长度是相关的。

如何缩短 count(*) 的执行时间

如果您希望在更短的时间执行 count(*),可以通过以下两个方式进行规避。

  • 在查询中通过 SQL Hint 指定并行度。例如指定并行度为 16。

    复制代码
    obclient> SELECT /*PARALLEL(16)*/ count(*) FROM $table;
  • 为主表创建一个只包含一列的索引。

    例如为 $tableid 列创建索引。

    复制代码
    obclient> CREATE INDEX ind ON $table(id);
相关推荐
XXYBMOOO24 分钟前
基于 Qt 的 BMP 图像数据存取至 SQLite 数据库的实现
数据库·c++·qt
Sunlight_77744 分钟前
第五章 SQLite数据库:1、SQLite 基础语法及使用案例
java·linux·服务器·jvm·数据库·tcp/ip·sqlite
嘉嘉king1 小时前
Mysql联表查询
数据库
镜舟科技2 小时前
NoSQL 与 NewSQL 全面对比:如何选择适合你的数据库方案?
数据库·starrocks·nosql·newsql·技术架构·实时数据分析
TDengine (老段)2 小时前
TDengine 语言连接器(Node.js)
大数据·c语言·数据库·物联网·node.js·时序数据库·tdengine
Sunlight_7772 小时前
第五章 SQLite数据库:3、SQLite 常用语法及使用案例
jvm·数据库·sqlite
数据库砖家3 小时前
YashanDB|虚拟内存高出实际内存十几G?原因不只是“占用大”这么简单
数据库
郭源潮13 小时前
《MySQL:MySQL表结构的基本操作》
数据库·mysql
火龙谷4 小时前
【hive】Hive对数据库,对表的操作(一)
数据库·hive·hadoop