📜  SQL 快照

📅  最后修改于: 2022-05-13 01:55:04.826000             🧑  作者: Mango

SQL 快照

快照是数据库中表的最新副本或表的行/列的子集。创建并随后维护快照的 SQL 语句通常从驻留在数据库的服务器中读取数据。使用 create snapshot SQL 命令在目标系统上创建快照。远程表立即从主表定义和填充。

这些用于在分布式数据库之间动态复制数据。有两种类型的快照可用。

  1. 简单快照
  2. 复杂的快照

简单快照:
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;

好处 :

  • 当表的本地只读副本存在时,响应时间得到改善。
  • 在远程数据库上构建快照后,如果包含从中构建快照的数据的节点不可用。无需访问不可用的数据库即可使用快照。
  • 减轻网络负载。
  • 数据子集。
  • 断开连接的计算。
  • 大规模部署。

缺点:

  • 主数据库脱机时无法访问快照。
  • 它不支持全文索引。
  • 如果数据频繁更改更快,则快照会耗尽磁盘空间。
  • 随着快照数量的增加,磁盘空间变得有问题。

应用:

  • 保护数据。
  • 维护数据的历史记录。
  • 用于测试应用软件。
  • 用于数据挖掘。
  • 当信息因人为错误或数据损坏而丢失时恢复数据。