SQL 快照
快照是数据库中表的最新副本或表的行/列的子集。创建并随后维护快照的 SQL 语句通常从驻留在数据库的服务器中读取数据。使用 create snapshot SQL 命令在目标系统上创建快照。远程表立即从主表定义和填充。
这些用于在分布式数据库之间动态复制数据。有两种类型的快照可用。
- 简单快照
- 复杂的快照
简单快照:
在simple snapshot中,每一行都基于单个远程表中的一行。这包括单个表或单个表中行的简单 SELECT。
例子 -
CREATE SNAPSHOT emp_snap
as select * from emp;
复杂快照:
在复杂快照中,通过 GROUP BY 操作或 Multi-Table Join 的结果,一行可能基于远程表中的多个行。这包括连接的表、视图或分组和复杂的 SELECT 语句查询。
例子 -
CREATE SNAPSHOT sampleSnps1
AS SELECT student.rollno, student.name
FROM student
UNION ALL
SELECT new_student.rollno, new_student.name
FROM new_student;
好处 :
- 当表的本地只读副本存在时,响应时间得到改善。
- 在远程数据库上构建快照后,如果包含从中构建快照的数据的节点不可用。无需访问不可用的数据库即可使用快照。
- 减轻网络负载。
- 数据子集。
- 断开连接的计算。
- 大规模部署。
缺点:
- 主数据库脱机时无法访问快照。
- 它不支持全文索引。
- 如果数据频繁更改更快,则快照会耗尽磁盘空间。
- 随着快照数量的增加,磁盘空间变得有问题。
应用:
- 保护数据。
- 维护数据的历史记录。
- 用于测试应用软件。
- 用于数据挖掘。
- 当信息因人为错误或数据损坏而丢失时恢复数据。