我在数据库中有两个表wp_rg_lead_details和wp_service_request。 我的疑问是:
$results1=$wpdb->get_results("SELECT * FROM wp_rg_lead_detail WHERE lead_id in ( SELECT entry_id FROM wp_service_request) and form_id =1 AND field_number in (1,39,2)");
当我运行此查询时,会花费太多时间导致页面超时。 单独执行时,内部查询成功运行。
两个表中大约有12000条记录。我该如何优化它以便我的页面加载更快?
答案 0 :(得分:0)
尝试单独运行内部查询,然后使用其结果进行提取 主查询中的数据。 试试这个
$results=$wpdb->get_results("SELECT entry_id FROM wp_service_requests");
$flag = 1;
$str = "(";
foreach ($results as $result) {
if($flag ==1)
{
$str = $str . "'" . $result->entry_id . "'" ;
$flag=2;
}
else
{
$str = $str . ",'" . $result->entry_id . "'" ;
}
}
$str .= ")";
$results1=$wpdb->get_results("SELECT * FROM wp_rg_lead_detail WHERE lead_id in " . $str ." and form_id =1 AND field_number in (1,39,2)");
我建议如果您不需要“wp_service_requests”中的完整数据,请尝试使用过滤器来最小化数据。