使用 queryNew() 构建查询的效率如何?我最近遇到了为“虚拟查询”创建数据库调用的代码,该查询没有像这样连接到任何表:
<CFQUERY NAME="IncludeList" ....>
Select 0 as code, 'Exclude' as description
UNION ALL
Select 1 as code, 'Include' as description
</CFQUERY>
对比
<cfset IncludeList = queryNew("code, description","Integer, VarChar")>
<cfset newrow = queryaddrow(IncludeList, 2)>
<cfset temp = querysetcell(IncludeList, "code", 0, 1)>
<cfset temp = querysetcell(IncludeList, "description", "Exclude", 1)>
<cfset temp = querysetcell(IncludeList, "code", 1, 2)>
<cfset temp = querysetcell(IncludeList, "description", "Include", 2)>
最佳答案
避免数据库连接。
对于 QofQ(即 dbtype="query"
),虽然这看起来是个好主意,但在实践中我已经看到当多个请求都命中同一个 QofQ 时服务器负载崩溃。根据堆栈跟踪,QofQ 实现是单线程,阻塞了其他线程。
另一方面,我也有代码执行 querySetCell()
操作,这不是性能问题。
关于sql - 使用 newquery 构建记录集与联合并连接到数据库相比效率高多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5461187/