同样的存储过程 在MySQL执行很快 OceanBase执行要慢很多
你好,能给出具体的版本号、关键配置、数据量、使用场景等信息吗?OceanBase和MySQL在不同的场景下表现都是不一样的,有了这些信息我们才能进行分析和定位问题。
社区版4.0.0
单节点配置:mini-single-example.yaml
memory_limit: 12G # The maximum running memory for an observer
system_memory: 1G # The reserved system memory. system_memory is reserved for general tenants. The default value is 30G.
datafile_size: 20G # Size of the data file.
log_disk_size: 24G # The size of disk space used by the clog files.
服务器系统:欧拉操作系统
CPU:i7-7700 @3.60GHz (8核)
内存:三条 DDR4 8G 2667 MT/s 内存条,总共24G内存
磁盘:1T HDD 机械硬盘 5400 rpm SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
数据量:1000条
但是存储过程里面的逻辑复杂 很多判断 和 字符串拼接,临时表等操作 在 MySQL上执行 只需0.3秒左右
在OceanBase上 则需要 六七秒
是每次都稳定在6秒左右么? 可能跟临时表的操作有关系,可以尝试去掉临时表操作试试。
去掉临时表之后 效率提示了 但是这个存储过程 第一次执行特别慢 后面继续执行 就会快很多
我也有这个问题
实际是存储过程CALL到真正运行起来,中间就花了几十秒,我看不少人都遇到这种问题,能查查你们数据库的问题吗?
貌似是因为后续执行会调用第一次执行的计划,省去很多步骤,所以比较快
关键没几分钟这计划缓存就没了,后面执行又会慢。