在php中,pg_field_type()会导致与数据库的额外通信吗?

问题描述 投票:0回答:1

如果

pg_field_type()
以任何方式调用数据库,其成本可能会很高。如果不是,那么它在 PHP 便宜的范围内就“便宜”了。

所以问题是,调用 pg_field_type() 是否会与数据库进行任何额外的通信,或者只是从 PHP 已经从数据库获取的结果中获取元数据?是或否,总是这样吗?为什么?

php postgresql resources php-pgsql
1个回答
0
投票

是的,当您第一次尝试获取类型名称时,会与数据库进行额外的通信(每个工作进程)。

PHP 的 pg 模块将查询整个

pg_type
表并缓存结果。

因此,如果您需要一种“便宜”的方法,请使用

pg_field_type_oid
并手动从 oid 转换为类型名称。

© www.soinside.com 2019 - 2024. All rights reserved.