查找 CockroachDB 中所有表的总行数

Finding the total number of rows for all tables in CockroachDB

我很好奇部署中所有表的总行数。 CockroachDB 是否有一个命令来计算我所有表中的总行数?

我们目前没有比 运行 对数据库中的每个 table 进行 SELECT COUNT(*) 查询更好的方法了,这会非常慢。相反,我们建议使用管理中的数据大小 UI 作为近似值。

如果仍然需要所有行的确切计数,您可以使用 shell 脚本从 information_schema 收集所有 table 名称并发出 COUNT(*) 查询所有这些。

例如,以下代码段将打印出数据库 cats 中每个 table 的行数:

tables=$(cockroach sql -e "SELECT table_name FROM information_schema.tables WHERE table_schema='cats'" | sed 1,2d)
for table in $tables; do
  cockroach sql -e "SELECT '$table', COUNT(*) FROM cats.$table"
done