查看表格在postgreSQL中是否没有行的最快方法是什么?

时间:2017-04-18 20:34:23

标签: python postgresql optimization query-optimization is-empty

我有一堆我正在迭代的表,其中一些没有行(即只有一个没有数据的标题表)。 例如:SELECT my_column FROM my_schema.my_table LIMIT 1返回一个空结果集。

检查表是否是没有行的表之一的绝对最快方法是什么?

我考虑过:SELECT my_column FROM my_schema.my_table LIMIT 1SELECT * FROM my_schema.my_table LIMIT 1 接着是if result is None(我在Python工作)。有没有更快的方法来检查?

3 个答案:

答案 0 :(得分:2)

select exists (select * from myTab);

select 1 where exists (select * from myTab)

甚至

SELECT reltuples FROM pg_class WHERE oid = 'schema_name.table_name'::regclass;

第3个示例使用估算器估算行数,这些行可能不是100%准确,但可能会稍快一点。

答案 1 :(得分:2)

这不比你的解决方案快,但返回一个布尔无重复:

select exists (select 1 from mytable)

答案 2 :(得分:-3)

SELECT COUNT(*) FROM table_name limit 1;

试试这段代码。