SQL查询占用了太多时间

时间:2018-02-01 14:48:59

标签: mysql wordpress gravity-forms-plugin

我在数据库中有两个表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条记录。我该如何优化它以便我的页面加载更快?

1 个答案:

答案 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”中的完整数据,请尝试使用过滤器来最小化数据。