在 CockroachDB 中访问行的最后更新时间

Accessing row's last updated time in CockroachDB

我希望仅提取自给定时间以来 CockroachDB 中发生更改的行。我们这样做是为了能够在不同的数据库技术中维护 table 的从属副本。我研究过 changefeeds,但它们看起来很基本(特别是如果我们决定去非企业)。我还阅读了有关 Cockroach 如何使用 MVCC 的信息,但我没有找到任何有关访问与底层存储技术中的行关联的时间戳的信息。

有没有办法通过 SQL 或其他方式访问此时间戳?

我正在考虑的几个备选方案:

如果使用低级时间戳不现实,您对上述方法有什么建议吗?

CockroachDB 的 v20.2 版本包含 crdb_internal_mvcc_timestamp 可以在此处提供帮助。您可以在此处查看有关它的发行说明:https://www.cockroachlabs.com/docs/releases/v20.2.0-alpha.3.html

但是,该列无法编入索引,因此如果 table 非常大,对其进行过滤会非常慢。

使用您维护的 last_updated_at 列,并为其添加索引可能会更好。请注意,如果您对 table 执行大量顺序写入,您可能需要使用 hash-sharded index.