cockroachdb - 在 CockroachDB 中访问行的最后更新时间
问题描述
我希望仅提取自给定时间以来在 CockroachDB 中更改的行。我们这样做是为了能够在不同的数据库技术中维护表的从属副本。我研究了 changefeeds,但它们看起来很基本(特别是如果我们决定非企业化)。我还阅读了 Cockroach 如何使用MVCC,但我没有找到任何有关访问与底层存储技术中的行相关联的时间戳的信息。
有没有办法通过 SQL 或其他方式访问这个时间戳?
我正在考虑的几个替代方案:
我可以使用 AS OF SYSTEM TIME 在不同时间运行 2 个查询,并计算出差异。
我可以在我的表中添加“上次更新”和“已删除”字段,并强制使用它们。
如果使用低级时间戳不现实,您对上述方法有什么建议吗?
解决方案
CockroachDB 的 v20.2 版本包括 crdb_internal_mvcc_timestamp 可以在这里提供帮助。您可以在此处查看有关它的发行说明:https ://www.cockroachlabs.com/docs/releases/v20.2.0-alpha.3.html
但是,该列不能被索引,因此如果表非常大,对其进行过滤会很慢。
使用last_updated_at
您维护的列并向其添加索引可能会更好。请注意,如果您对表执行大量顺序写入,则可能需要使用散列分片索引。
推荐阅读
- html - The menu slips in HTML
- python - Cython 模块可以与 python 包一起导入
- java - 内部错误:尝试添加不属于路段的控制点 - 道路交通库 - Anylogic
- javascript - 算法性能:JS函数解分析
- hibernate - 带有集合的 Grails LazyInitializationException
- php - 在 codeception 中运行包含文件的套件
- c# - 使用 c# 在 jira 中更改转换
- angular - 如何在“mat-datepicker”中添加清除按钮
- java - 如何检查 Hashmap 值中的子字符串
- javascript - 如何遍历 chrome.tabs.query 数组?获得意外的属性:“活动”