Oracle中的“主从”表复制

问题描述

是否会有与主从数据库类似的东西,但是在数据库的表级别?

例如,我有以下情形:

  1. 我有一个包含数百万条记录的表,原因是该系统已使用15年以上了。
  2. 我只想显示去年(2019-2020)的记录。
  3. 我决定从包含数百万条记录的表的信息中创建一个仅显示该范围(1年)记录的视图。
  4. 由于该视图,由于我的记录负载较少,因此该系统屏幕的加载时间更短。

问题:如果用户将新记录添加到包含数百万条记录的表中怎么办?修改其他表后,如何修改视图?

我可以使用触发器来更新我认为的视图,但是oracle中是否具有一项功能,该功能可以使我类似于刚才询问的内容(主从),其中“从”表被更新为“主”桌子有变化吗?

解决方法

首先,您误解了视图。视图不是物理表,并且不存储任何信息。如果将数据插入视图,则实际上是在插入源表。

由于视图不是物理视图,因此您只是在过滤数据。这没有任何性能上的好处。

对于大表,您可以使用分区来大大提高性能。而且,如果您仍然需要存档,则可以存档分区数据。

分区通常是最好的方法,因为通常可以通过简单地执行“交换”命令来存档旧数据来存档数据。

在这种情况下,数据不会“移动”,它只是通过数据字典操作与表“分离”。

,

是否会有与主从数据库类似的东西,但是在数据库的表级别

如果您要查询表级的主/从复制,那么, 我想,表/实例化视图的关系适合作为主从调用。来自Oracle Docs的引用:

实例化视图是一个包含查询结果的数据库对象。查询的FROM子句可以命名表,视图和其他实例化视图。这些对象统称为主控 (复制术语)...

当您需要“更新”或更恰当地-刷新mview时,可以使用其他选项:

与其他视图相比,Mview可能更快,因为每次从一个mview中进行选择时,您都从一个与原始表复制的“表”中进行选择。特别是如果您在sql中具有复杂的逻辑,则可以put the logic来mview定义。

缺点是您需要更多磁盘空间用于mview,并且刷新数据会有延迟。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...