我有一个plypython功能,做一些JSON魔术。 为此,它显然导入JSON库。
被称为在每次调用该函数的进口? 是否有任何性能暗示我必须要知道的?
我有一个plypython功能,做一些JSON魔术。 为此,它显然导入JSON库。
被称为在每次调用该函数的进口? 是否有任何性能暗示我必须要知道的?
该import
是在每个函数调用执行。 这是相同的行为,如果你写了一个普通的Python模块的,你会得到import
函数体内语句在模块级oppposed来。
是的,这会影响性能。
您可以解决此通过缓存进口是这样的:
CREATE FUNCTION test() RETURNS text
LANGUAGE plpythonu
AS $$
if 'json' in SD:
json = SD['json']
else:
import json
SD['json'] = json
return json.dumps(...)
$$;
这是无可否认的不是很漂亮,和更好的方式来做到这一点正在被讨论,但他们不会的PostgreSQL 9.4之前发生。