【业务咨询】MySQL迁移到OceanBase后,带有特定函数的查询性能下降严重

源数据库:MySQL 5.7
目标数据库:OceanBase 4.2.1.2-10602018
迁移工具:OMS / mysqldump (请根据你的工具选择)

问题描述:
我有一张订单表(约500万数据),在MySQL中运行以下查询耗时在200ms左右:

sql

SELECT * FROM order_table WHERE JSON_EXTRACT(ext_info, ‘$.user_level’) > 3;

迁移到OceanBase后,同样的数据和索引,该查询耗时变成了2秒以上。使用 EXPLAIN 查看执行计划,发现虽然使用了索引,但预估行数似乎不太准确。

提问:

  1. OceanBase对MySQL的JSON函数(如 JSON_EXTRACT )是否做了特殊的优化?或者说在内部处理机制上有什么不同?
  2. 针对这种慢查询,除了常规的索引优化外,有没有OceanBase特有的HINT或者参数(例如开启并行查询)可以尝试?
  3. 如果需要收集统计信息来优化执行计划,应该执行什么命令?(类似MySQL的 ANALYZE TABLE