Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 优化长时间运行的SELECT DISTINCT查询以及在何处使用';解释';在查询中?_Php_Mysql - Fatal编程技术网

Php 优化长时间运行的SELECT DISTINCT查询以及在何处使用';解释';在查询中?

Php 优化长时间运行的SELECT DISTINCT查询以及在何处使用';解释';在查询中?,php,mysql,Php,Mysql,我在下面的代码中到底在哪里使用EXPLAIN,有人能建议如何加速/优化这段代码吗(对于jobseeker表和jos_users表中的400万行) resume\u view.hits和resume.featured将只返回0或1行?如果是这样的话,您应该能够通过左连接来完成这一切。如果有零行,则该值将为空 SELECT DISTINCT a.*,b.name,dl.id id_deg,dl.degree_level, r.hits, r2.featured AS f

我在下面的代码中到底在哪里使用EXPLAIN,有人能建议如何加速/优化这段代码吗(对于jobseeker表和jos_users表中的400万行)


resume\u view.hits和resume.featured将只返回0或1行?如果是这样的话,您应该能够通过左连接来完成这一切。如果有零行,则该值将为空

SELECT DISTINCT a.*,b.name,dl.id id_deg,dl.degree_level, 
      r.hits,  
      r2.featured AS featuredres
 FROM #__jbjobs_jobseeker a 
    LEFT JOIN #__users b ON a.user_id=b.id  
    LEFT JOIN #__jbjobs_degree_level dl ON a.id_degree_level = dl.id 
    LEFT JOIN #__jbjobs_custom_field_value c ON c.userid=a.user_id 

    LEFT JOIN #__jbjobs_resume_view r ON r.jseeker_id=a.user_id AND r.employer_id = $user_id
    LEFT JOIN #__jbjobs_resume r2 ON r2.is_active='y' AND r2.featured=1 AND r2.featured_expire > NOW() AND r2.jseeker_id=a.user_id

    WHERE $where AND b.block='0' 
    ORDER BY featuredres DESC

$query=“解释选择…
这些子查询将影响您的性能。”lot@wiseguy我试过了,但不起作用…虽然没有错误@firestream我知道…它已经极大地影响了性能…我实际上正在寻找一个提高性能的解决方案。没有给出ant结果吗?完全那么,你能在你的问题中粘贴表格结构吗?请使用文本-这需要一点努力。使用代码块(在编辑器中用4个空格缩进)并将列名、类型和标记关系隔开。只需要关系字段或“选择依据”字段。还有一个fiddle for SQL(sqlfiddle.com),可能会使它更简单-放在那里,然后添加到你的问题的链接。我插入了图像。也许你可以右键单击并下载…我计划稍后删除它。对不起-这只是用户表。我们需要##uuujbjobs(求职者#uuujbjobs),#ujbjobs(简历)视图,#ujbjobs(简历)的结构(但关系中使用的所有字段和“WHERE)(位置)),文本要容易得多--每次编辑时都会移到最上面一行,其他人可能会看到结构并能提供帮助--因此让他们阅读起来更容易。
SELECT DISTINCT a.*,b.name,dl.id id_deg,dl.degree_level, 
      r.hits,  
      r2.featured AS featuredres
 FROM #__jbjobs_jobseeker a 
    LEFT JOIN #__users b ON a.user_id=b.id  
    LEFT JOIN #__jbjobs_degree_level dl ON a.id_degree_level = dl.id 
    LEFT JOIN #__jbjobs_custom_field_value c ON c.userid=a.user_id 

    LEFT JOIN #__jbjobs_resume_view r ON r.jseeker_id=a.user_id AND r.employer_id = $user_id
    LEFT JOIN #__jbjobs_resume r2 ON r2.is_active='y' AND r2.featured=1 AND r2.featured_expire > NOW() AND r2.jseeker_id=a.user_id

    WHERE $where AND b.block='0' 
    ORDER BY featuredres DESC