关于大表查询的性能瓶颈(SQL 优化)
在 OceanBase(MySQL 模式下),我有一张几个亿记录的大表,执行简单的 SELECT MIN(id) 或 SELECT MAX(id) 查询时,耗时非常长(将近10秒),而在同样配置的 Oracle 中只需要几百毫秒。从数据库内核的角度看,造成这种性能差异的可能原因是什么?除了调整超时时间,有没有更好的实践来优化这类聚合查询?
关于大表查询的性能瓶颈(SQL 优化)
在 OceanBase(MySQL 模式下),我有一张几个亿记录的大表,执行简单的 SELECT MIN(id) 或 SELECT MAX(id) 查询时,耗时非常长(将近10秒),而在同样配置的 Oracle 中只需要几百毫秒。从数据库内核的角度看,造成这种性能差异的可能原因是什么?除了调整超时时间,有没有更好的实践来优化这类聚合查询?
优化器和存储结构不同,所以自动调优机制也就不同了啊
学习下
ID 设置为主键了吗? 应该很快的呀,使用show create table xxx 查看表的结构看看!
查一下表结构
OceanBase 执行 SELECT MIN(id)/MAX(id) 耗时远高于 Oracle,核心原因是分布式架构特性与 执行计划 / 元数据机制差异,而非单纯的 “数据库性能” 差距。
好好学习
天天向上
看看
![]()
学习了
使用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’}”