Caching ColdFusion |查询超时错误问题

Caching ColdFusion |查询超时错误问题,caching,coldfusion,coldfusion-2016,qoq,Caching,Coldfusion,Coldfusion 2016,Qoq,这是我的密码 <cfquery name="employeeData" datasource="xyz" cachedwithin="#CreateTimeSpan(0,0,60,0)#"> SELECT employee, salary FROM employee </cfquery> <cfquery name="wellPaidEmployee" dbtype="query"> SELECT employee, salary

这是我的密码

<cfquery name="employeeData" datasource="xyz" cachedwithin="#CreateTimeSpan(0,0,60,0)#">
    SELECT employee, salary
    FROM employee
</cfquery>

<cfquery name="wellPaidEmployee" dbtype="query">
    SELECT employee, salary
    FROM employeeData WHERE salary > <cfqueryparam cfsqltype="cf_sql_integer" value="10000">
</cfquery>

选择员工、薪资
来自员工
选择员工、薪资
来自employeeData,其中工资>
条件:
由于某些问题,第一个查询EmployeeData超时,并抛出错误“query timed out”

问题:

  • 在下一次调用中,查询EmployeeData是否会运行,或者当我们使用CacheIn缓存它时,它会在缓存中出现查询超时错误
  • 第一次跑步和下一次跑步时,WellPaide员工会发生什么

  • 只有成功的db请求被缓存,因此EmployeeData查询将在下一次传递时运行


    如果employeeData没有错误,将运行WellPaideEmployee查询。

    对于注释来说太长了

    查询超时和缓存过期是两件不同的事情

    <cfquery name="employeeData" datasource="xyz" cachedwithin="#CreateTimeSpan(0,0,60,0)#">
    SELECT employee, salary
    FROM employee
    </cfquery>
    
    
    选择员工、薪资
    来自员工
    
    将在第一次命中时运行。它还将保存其数据60分钟。如果在60分钟内再次访问该数据,缓存超时将重置为零。理论上,如果每60分钟访问一次这些数据,它就永远不会进入数据库

    至于

    <cfquery name="wellPaidEmployee" dbtype="query">
    SELECT employee, salary
    FROM employeeData WHERE salary > <cfqueryparam cfsqltype="cf_sql_integer" value="10000">
    </cfquery>
    
    
    选择员工、薪资
    来自employeeData,其中工资>
    
    它不知道,也不关心底层数据是否来自缓存。它只会返回结果

    如果您遇到“查询超时”错误。这是一个完全不同的问题。ColdFusion与数据库的连接方式有问题,或者数据库本身有问题