【 TiDB 使用环境】开发环境
【 TiDB 版本】不太清楚
【遇到的问题:问题现象及影响】
有一个项目正要开始使用tidb,但是遇到了一个情况。原先的项目使用的oracle,并且写了大量的存储过程。目前如果要使用tidb必须迁移这一些存储过程。请问有人有相关经验吗?
- tidb目前应该是还不支持存储过程
- 可以关注下新版本
- 可以把存储过程放到业务侧去实现
只能改写,因为tidb不支持存储过程,如果原来用的MySQL,迁移tidb很方便,但是原来用oracle的话,个人觉得,OceanBase要更方便一点,改动量更少
您是ocenabase 高手??
只能考虑迁移业务, tidb 目前是不支持的
建议如下:
- 整理业务场景
- 核对数据模型
- 检查所有的强引用和强约束
- 检查所有的存储过程的应用场景
- 启用中间服务的方式替代相应的存储过程和强约束,强引用的逻辑…
整个过程会比较痛苦… 不过整体迁移完成之后,对于扩展能力,性能会有比较大的提高…
不是,用过而已,OceanBase的oracle模式能兼容大部分的oracle语法,应用上改造比较小,我们原来有应用数据库国产化走的就是oracle切换到OceanBase
OceanBase 使用起来感觉怎么样
tidb不支持存储过程,现在一般建议程序来实现。
不支持存储过程 只能改写
难点就是目前没有业务,只能对着超长的存储过程去改写。而且还恩多oracle的函数还不支持,就得用别的替代。不太熟悉oracle,只能碰到一个学一个
我搜到一个 Oracle 与 TiDB 函数和语法差异对照,但是不太齐全。有更多相关的分享改写经验的文档吗?
那您到 Oceanbase吧 。号称兼容90% oracle 11g. 什么存储过程,函数,人家都支持。
是不是学了N多tidb 有舍不得放弃呢???哈哈
存储过程太反人类了,为了科技进步社会发展,还是都改写比较合适
存储过程存在的价值: DBA 可以当程序员,实现一定的功能。 开发DBA。 但是对于后期迁移改造来说是个大坑。
你只说了对DBA的价值。
对实际业务的价值是:减少数据的来回传输,把一些计算放在了数据库侧。适合比较复杂的SQL
tidb我记得是不支持存储过程的吧
目前正在做移植,其他函数都好说,但是对于rollup除了union all之外还有别的好办法吗?
单数据源更新时,异步刷新其他的多套数据格式,这样可以解决 你的担忧,但是中间服务会变得复杂点
不过性能就上去了,而且是解耦的,不影响扩展