生产数据从msyql迁移到oceanbase后,100万条数据,单表分页查询比mysql慢

【 使用环境 】生产环境
【 OB or 其他组件 】
【 使用版本 】4.4.1社区版
【问题描述】生产数据从msyql迁移到oceanbase后,100万条数据,单表按索引查询,mysql只需要0.2秒,oceanbase需要5秒
【复现路径】问题出现前后相关操作
SELECT * FROM line WHERE task_date BETWEEN ‘2024-09-12’ AND ‘2024-09-13’ limit
0,10;

使用obdiag收集一下
obdiag gather plan_monitor --trace_id YB420BA2D99B-0005EBBFC45D5A00-0-0 --env “{db_connect=’-hxx -Pxx -uxx -pxx -Dxx’}”
https://www.oceanbase.com/docs/common-obdiag-cn-1000000004222802

[obdiag_gather_pack_20251120163653.zip|attachment]

你这个语句是直连执行的么?看着逻辑执行计划和物理计划不一致

是的

1、通过sql_audit中获取trace_id么 找到业务端发起的这个sql信息 用obdiag收集一下 我看看
select query_sql,trace_id from oceanbase.GV$OB_SQL_AUDIT where query_sql like ‘xxx%’ order by REQUEST_TIME desc limit 5;
2、你们是行列混存的么?
3、192.168.80.180直连的ip是这个么?

1、通过sql_auit获取的trace_id
2、没有行列混存,刚从mysql转过来,都是按行存储的
3、通过192.168.80.180直连的

这个是你们创建的表信息
ORGANIZATION INDEX DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = ‘zstd_1.3.8’ REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE ENABLE_MACRO_BLOCK_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0 WITH COLUMN GROUP(each column)
看着是使用列存了
信息查一下
SELECT * FROM oceanbase.DBA_OB_ZONES;

select * from oceanbase.gv$ob_servers;

使用的OMS转移过来的,需要怎么处理呢

那不应该呀 oms使用的那个版本 mysql是哪个版本?

OMS连接的mysql版本是5.7.18

show parameters like ’ %default_table_store_format%’;查一下这个参数
怀疑设置参数了
列转行的操作
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003977688

参数设置错了 你可以官网查一下default_table_store_format这个参数

好的,我试一下您的方法。

这个参数安装后没设置过的,默认值是行存,实际确是列存

你应该是安装的时候 是不是选取什么参数了 导致的 正常默认的时候是行存 我们内部也是测试过

当时你们搭建ob集群的时候 是用ocp搭建的还是ob搭建的 有使用模版搭建么?

使用OCP搭建的,没有使用模板搭建

能否有环境复现一下 你们搭建的过程 ocp使用的版本也发一下