数据升级:update_t_origin.sql
-- 重命名旧表
alter table t_origin rename to bak_t_origin;
-- 同义词方案,将新表切换上线
create or replace synonym t_origin for t_origin_01;
-- 注:也可以通过视图方案将新表切换上线,语句如下:
-- create or replace view t_origin as select * from t_origin_01;
升级回滚:undo_t_origin.sql
方案一:
-- 删除同义词
drop synonym t_origin;
-- 将旧表恢复
alter table bak_t_origin rename to t_origin;
方案二:
create or replace synonym t_origin for bak_t_origin;
脚本执行顺序:后进先出
1.执行"数据迁移脚本", 失败时执行"迁移回滚脚本"
2.执行"数据升级脚本", 失败时执行"升级回滚脚本"
3.数据迁移、升级脚本都执行成功后, 需要回滚时,先执行"升级回滚脚本",再执行"迁移回滚脚本"
表t_origin结构升级后,"登陆用户商品列表"业务SQL:
select user_id,
&
-- 重命名旧表
alter table t_origin rename to bak_t_origin;
-- 同义词方案,将新表切换上线
create or replace synonym t_origin for t_origin_01;
-- 注:也可以通过视图方案将新表切换上线,语句如下:
-- create or replace view t_origin as select * from t_origin_01;
升级回滚:undo_t_origin.sql
方案一:
-- 删除同义词
drop synonym t_origin;
-- 将旧表恢复
alter table bak_t_origin rename to t_origin;
方案二:
create or replace synonym t_origin for bak_t_origin;
脚本执行顺序:后进先出
1.执行"数据迁移脚本", 失败时执行"迁移回滚脚本"
2.执行"数据升级脚本", 失败时执行"升级回滚脚本"
3.数据迁移、升级脚本都执行成功后, 需要回滚时,先执行"升级回滚脚本",再执行"迁移回滚脚本"
表t_origin结构升级后,"登陆用户商品列表"业务SQL:
select user_id,
&

本文探讨了面对数据量达到10亿级别的数据库表,如何通过将多行数据存储为一行以及一列数据扩展为多列来实现数据优化和迁移的策略。内容涉及到利用connect by level和regexp_count函数处理goods_id中逗号分隔的数量。
最低0.47元/天 解锁文章
1164

被折叠的 条评论
为什么被折叠?



