我有一张大部分时间都是空的桌子。偶尔会有大量数据被转储到其中,需要尽快处理。
我有一个持续检查表并处理它找到的任何数据的过程。
测试表中任何数据的最快/最有效的方法是什么?
显而易见的解决方案是......
SELECT count(*) FROM myTable;
但这可能需要一段时间(特别是如果其中有几百万行)。另一种解决方案是
SELECT reltuples AS approximate_row_count FROM pg_class WHERE relname = 'myTable'
但这只是给出了一个近似值。
有没有更好/更快的解决方案。注意 - 我不是在寻找确切的行数,我在寻找简单的空/非空布尔结果。
您可以使用存在条件:
这
limit 1
并不是真正必要的,因为 EXISTS 运算符无论如何都会在第一行停止