写这样的东西有什么不同:
SET SCHEMA 'schema';
SELECT table2.field1,
table2.field2,
table2.field3,
table2.field4,
table2.field5,
table2.field6
FROM table2
WHERE table2.field1 LIKE '%{$search}%' and table2.field2 LIKE '%{$search2}%' and table2.field3 LIKE '%{$search3}%' and table2.field4 LIKE '%{$search4}%' and (table2.field5 ~* '{$search5}' {$radioa} table2.field6 ~* '{$search6}')
ORDER BY table1.field1 DESC, table1.field2 LIMIT {$radiob};
plpgsql中有什么东西?我的意思是,如果我将上述内容翻译成plpgsql,我将在速度或效率方面受益吗?我应该坚持使用PHP中的平淡,动态语句,还是使用plpgsql进行香蕉?
答案 0 :(得分:1)
两种情况下查询的执行时间都相同。如果从PLpgSQL的客户端运行查询,则不重要。不同之处在于结果处理。当您在服务器端(来自PLpgSQL)处理结果时,网络和数据类型转换开销为零。客户端的数据处理要贵得多 - 对于频繁调用的查询或大的结果是客户端的处理速度明显变慢。
存储过程(服务器端代码)的其他好处是来自异构环境的可访问性(您可以很好地共享此代码)。 PHP代码只能通过PHP或HTTP协议调用。但是这种优势在整体环境中并不重要(所有这些都是Java或全部是PHP)。