Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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
Mysql SQL数据库冻结在7个以上的连接中选择[加载查询需要花费很长时间]_Mysql_Sql_Database_Phpmyadmin - Fatal编程技术网

Mysql SQL数据库冻结在7个以上的连接中选择[加载查询需要花费很长时间]

Mysql SQL数据库冻结在7个以上的连接中选择[加载查询需要花费很长时间],mysql,sql,database,phpmyadmin,Mysql,Sql,Database,Phpmyadmin,我不知道为什么这个查询要花费很长时间并冻结整个服务器。当我移除一个coulmn值并将表单连接到其工作状态下时。我想知道SQL是否有一个查询所能支持的最大连接数 查询1[冻结数据库并永远使用] 查询2[删除一个值后,其工作状态] 由于您取出了表d7,我建议您检查一下d7中的表是什么,以及它的连接条件,这会导致查询运行很长时间。顺便说一句,虽然它对性能没有任何影响,但您可能会发现这更易于阅读和维护: SELECT u.username , u.firstname , u.la

我不知道为什么这个查询要花费很长时间并冻结整个服务器。当我移除一个coulmn值并将表单连接到其工作状态下时。我想知道SQL是否有一个查询所能支持的最大连接数

查询1[冻结数据库并永远使用]

查询2[删除一个值后,其工作状态]


由于您取出了表d7,我建议您检查一下d7中的表是什么,以及它的连接条件,这会导致查询运行很长时间。

顺便说一句,虽然它对性能没有任何影响,但您可能会发现这更易于阅读和维护:

SELECT u.username 
     , u.firstname 
     , u.lastname 
     , u.username 
     , u.id Userid
     , u.email 
     , u.city 
     , MAX(CASE WHEN f.shortname = 'resume' THEN d.data END) resume
     , MAX(CASE WHEN f.shortname = 'linkedin' THEN d.data END) linkedin
     , MAX(CASE WHEN f.shortname = 'searchable'  THEN d.data END) searchable
     , MAX(CASE WHEN f.shortname = 'scores'  THEN d.data END) score
     , MAX(CASE WHEN f.shortname = 'jobtitle'  THEN d.data END) 'current job title'
     , MAX(CASE WHEN f.shortname = 'employer'  THEN d.data END) 'current employer'
     , MAX(CASE WHEN f.shortname = 'relocate'  THEN d.data END) 'relocate'
     , MAX(CASE WHEN f.shortname = 'years'  THEN d.data END) 'Years of HVAC Experience'
  FROM prefix_user u
  JOIN prefix_user_info_data d
    ON d.userid = u.id
  JOIN prefix_user_info_field f
    ON f.id = d.fieldid 
 GROUP
    BY u.id
     , f.shortname
HAVING `Years of HVAC Experience` > 5;

您的加入条件可能是错误的。我会特别检查最后一张表。@GordonLinoff你指的是所有的条件吗?你是否分别尝试了两套并加入了这两套?例如,f1到f3,以及f4到f6。您是否尝试将带有where子句的每个f1分别放入临时表和联接中?否。有比这多得多的联接的查询工作正常。请注意,函数不能使用索引。是否可以根据数据类型将eav数据拆分为单独的表?我怀疑如果没有底层数据,Join的数量很难确定,但如果是这样,那么您可以将其拆分为单独的查询,或者另一个建议是尝试使用CTE。
SELECT
u.username AS 'Username',
u.firstname AS 'Firstname',
u.lastname AS 'Lastname',
u.username AS 'Username',
u.id AS 'Userid',
u.email AS 'Email',
u.city AS 'City',
d1.data AS 'Resume',
d2.data AS 'LinkedIn',
d3.data AS 'Searchable', 
d4.data AS 'Score',
d5.data AS 'Current job title',
d6.data AS 'Current Employer',
d8.data AS 'Years of HVAC Experience'

FROM prefix_user u

JOIN prefix_user_info_data d1 ON d1.userid = u.id
JOIN prefix_user_info_field f1 ON d1.fieldid = f1.id AND f1.shortname = 'Resume'

JOIN prefix_user_info_data d2 ON d2.userid = u.id
JOIN prefix_user_info_field f2 ON d2.fieldid = f2.id AND f2.shortname = 'Linkedin'

JOIN prefix_user_info_data d3 ON d3.userid = u.id
JOIN prefix_user_info_field f3 ON d3.fieldid = f3.id AND f3.shortname = 'Searchable'

JOIN prefix_user_info_data d4 ON d4.userid = u.id
JOIN prefix_user_info_field f4 ON d4.fieldid = f4.id AND f4.shortname = 'Scores'

JOIN prefix_user_info_data d5 ON d5.userid = u.id
JOIN prefix_user_info_field f5 ON d5.fieldid = f5.id AND f5.shortname = 'JobTitle'

JOIN prefix_user_info_data d6 ON d6.userid = u.id
JOIN prefix_user_info_field f6 ON d6.fieldid = f6.id AND f6.shortname = 'Employer'

JOIN prefix_user_info_data d8 ON d8.userid = u.id
JOIN prefix_user_info_field f8 ON d8.fieldid = f8.id AND f8.shortname = 'Years'

WHERE
CAST(d8.data AS float) > 5
SELECT u.username 
     , u.firstname 
     , u.lastname 
     , u.username 
     , u.id Userid
     , u.email 
     , u.city 
     , MAX(CASE WHEN f.shortname = 'resume' THEN d.data END) resume
     , MAX(CASE WHEN f.shortname = 'linkedin' THEN d.data END) linkedin
     , MAX(CASE WHEN f.shortname = 'searchable'  THEN d.data END) searchable
     , MAX(CASE WHEN f.shortname = 'scores'  THEN d.data END) score
     , MAX(CASE WHEN f.shortname = 'jobtitle'  THEN d.data END) 'current job title'
     , MAX(CASE WHEN f.shortname = 'employer'  THEN d.data END) 'current employer'
     , MAX(CASE WHEN f.shortname = 'relocate'  THEN d.data END) 'relocate'
     , MAX(CASE WHEN f.shortname = 'years'  THEN d.data END) 'Years of HVAC Experience'
  FROM prefix_user u
  JOIN prefix_user_info_data d
    ON d.userid = u.id
  JOIN prefix_user_info_field f
    ON f.id = d.fieldid 
 GROUP
    BY u.id
     , f.shortname
HAVING `Years of HVAC Experience` > 5;