关于大表查询的性能瓶颈(SQL 优化)

关于大表查询的性能瓶颈(SQL 优化)

在 OceanBase(MySQL 模式下),我有一张几个亿记录的大表,执行简单的 SELECT MIN(id) 或 SELECT MAX(id) 查询时,耗时非常长(将近10秒),而在同样配置的 Oracle 中只需要几百毫秒。从数据库内核的角度看,造成这种性能差异的可能原因是什么?除了调整超时时间,有没有更好的实践来优化这类聚合查询?

4 个赞

优化器和存储结构不同,所以自动调优机制也就不同了啊

2 个赞

学习下

ID 设置为主键了吗? 应该很快的呀,使用show create table xxx 查看表的结构看看!

1 个赞

查一下表结构

OceanBase 执行 SELECT MIN(id)/MAX(id) 耗时远高于 Oracle,核心原因是分布式架构特性执行计划 / 元数据机制差异,而非单纯的 “数据库性能” 差距。

好好学习

天天向上

看看

:+1: :+1:

学习了

使用obdiag采集一份sql信息,提供分析下
SQL性能问题, 此处env中的trace_id对应gv$ob_sql_audit的trace_id
obdiag gather scene run --scene=observer.perf_sql --env “{db_connect=’-hxx -Pxx -uxx -pxx -Dxx’, trace_id=‘xx’}”