Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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 开发服务器没有';不管怎样,实时服务器需要很长时间_Php_Mysql_Sql_Database - Fatal编程技术网

Php 开发服务器没有';不管怎样,实时服务器需要很长时间

Php 开发服务器没有';不管怎样,实时服务器需要很长时间,php,mysql,sql,database,Php,Mysql,Sql,Database,开发:i3-2100(4芯)3.1Ghz 现场:E3-1220(4芯)3.1Ghz 其他一切都几乎相同—4gb ram、500gb sata hds(raid 1) 在Dev上运行此查询时,查询位于showprocesslist上不到1s,但在Live上,它将处理查询,然后移动到“复制到tmp表”,并移动到300(时间),从我所知,几乎超时 编辑:解释查询。注意:live和dev上的代码和数据库是相同的。 id select_type table type possible_

开发:i3-2100(4芯)3.1Ghz

现场:E3-1220(4芯)3.1Ghz

其他一切都几乎相同—4gb ram、500gb sata hds(raid 1)

在Dev上运行此查询时,查询位于
showprocesslist上
不到1s,但在Live上,它将处理查询,然后移动到“复制到tmp表”,并移动到300(时间),从我所知,几乎超时

编辑:解释查询。注意:live和dev上的代码和数据库是相同的。

id  select_type     table   type    possible_keys   key     key_len     ref     rows    Extra
1   SIMPLE  p   const   PRIMARY     PRIMARY     4   const   1   Using temporary; Using filesort
1   SIMPLE  pchu    ref     project_company_has_user_project_id     project_company_has_user_project_id     4   const   3958    Using where
1   SIMPLE  fqha    ref     form_question_has_answer_form_id,form_question_has...   form_question_has_answer_user_id    4   new_klarents.pchu.project_company_has_user_user_id  4   
1   SIMPLE  c   eq_ref  PRIMARY     PRIMARY     4   new_klarents.pchu.project_company_has_user_company...   1   
1   SIMPLE  u   eq_ref  PRIMARY     PRIMARY     4   new_klarents.pchu.project_company_has_user_user_id  1   
请询问更多信息,我会提供我能找到的

我得出的结论是,在使用ORDERBY时需要tmp表

有人知道为什么live server会导致这种速度减慢吗?我在live和dev都没有运行其他查询的情况下运行了这些查询

查询:

SELECT 
    pchu.project_company_has_user_id, 
    pchu.project_company_has_user_project_id, 
    pchu.project_company_has_user_user_id, 
    c.company_id, 
    c.company_hall_no, 
    c.company_type, 
    c.company_company_name, 
    c.company_stand_number, 
    c.company_locked, 
    c.company_country, 
    c.company_ready_for_page, 
    c.company_image_file_1, 
    u.user_id, 
    u.user_username, 
    p.project_id, 
    p.project_name, 
    fqha.form_question_has_answer_id, 
    fqha.form_question_has_answer_request 
FROM 
    project_company_has_user pchu
LEFT JOIN 
    company c 
    ON 
        pchu.project_company_has_user_company_id = c.company_id 
LEFT JOIN 
    user u 
    ON 
        pchu.project_company_has_user_user_id = u.user_id 
LEFT JOIN 
    project p 
    ON 
        pchu.project_company_has_user_project_id = p.project_id 
LEFT JOIN 
    form_question_has_answer f 
    ON 
        pchu.project_company_has_user_user_id = f.form_question_has_answer_user_id 
        AND 
            (f.form_question_has_answer_form_id = 174) 
WHERE 
    (p.project_id = 29 AND pchu.project_company_has_user_garbage_collection = 0) 
ORDER BY 
    company_company_name asc 
LIMIT 25

live vs dev中有多少数据?live中的表是否已优化?您能为live和dev提供解释计划吗?请在dev/prod上使用
description
,并确保它们完全相同。第二,尝试使用mysql的
explain
。最后,确保mysql的配置在两个环境中大致相同(相对于系统资源)。如果所有配置都相同/相对,则确保数据的大小和索引正确。如果需要,请询问更多信息。数据库是副本。从live拉到dev上。所以在这两种情况下,一切都是一样的。repo除了在live上存储和加载的图像之外是相同的,但是这些与数据库调用无关。