闪回查询 您可以查询指定表在某个历史时间点的数据(即表数据闪回查询),用于修改后核对、审计验证、问题排查等操作。 约束限制 表必须使用InnoDB存储引擎。 必须先为目标表开启系统版本化配置,开启命令如下: 注意 操作前,请先获取该表的维护权限。 plaintext ALTER TABLE 表名 ADD SYSTEM VERSIONING; 开启系统版本化后,表上会有一个用于版本判断的隐藏时间列(名称一般为teledbsysmodtime),执行SELECT 时不会显示该列,但支持写明该列名查看: 说明 该列通常在UPDATE时才会更新,新插入的行上该值可能为空,若您需要记录插入时间 或按插入时刻进行业务判断,请单独设计业务字段(例如createdat),不要使用默认的teledbsysmodtime代替,即不要依赖隐藏时间列。 plaintext SELECT id, teledbsysmodtime, FROMUNIXTIME(teledbsysmodtime / 1000000) AS 约等于修改时间秒 FROM orders LIMIT 10; 如需限制最远能查询多久以前的表数据,并控制历史数据占用空间,只需由管理员配置全局参数innodbbackquerywindow设置可查询范围即可,该参数说明如下: 参数含义:为已开启系统版本化的表,约定大约在多长时间内尽量保留可供时点查询的历史;超时后历史可能被回收。 取值范围:0~3600,单位为秒,即最多支持设置为1小时。 默认值:0,表示不启用按秒保留策略,即不保证能够查询到很久以前的数据。 权限说明:管理员需要具备修改全局变量的权限,一般为GLOBAL权限。 注意 当设置的时间窗口较大时,边界时间可能存在约秒级的误差,请留余量并多次验证。 建议与管理员共同确定innodbbackquerywindow,使之覆盖业务上最远可能需要查询的时间,并留有余量。