在我们的应用程序中,我们在启动时检查,
如果 postgresql 表存在,如果不存在,我们创建它,然后启用行级安全性
如果它确实存在,我们仍然不确定行级安全性是否正确
因此,我们总是需要检查是否启用了行级安全性,如果没有,我们需要启用它。
现在有两种方法可以做到这一点(可能还有更多,但这是我们可以想到的两种方法):
ALTER TABLE <tname> enable row level security;
或者,我们可以做
SELECT rowsecurity FROM pg_tables WHERE tablename = <tname>
并且仅当返回 时false
,才运行ALTER TABLE
from (1)。
我们的问题是,选项(2)是否比选项(1)性能更高,或者它只是让事情变得更加复杂,而没有提高后续初创公司的性能?
每次应用程序启动时都会进行此检查。