Php 开发服务器没有';不管怎样,实时服务器需要很长时间
开发:i3-2100(4芯)3.1Ghz 现场:E3-1220(4芯)3.1Ghz 其他一切都几乎相同—4gb ram、500gb sata hds(raid 1) 在Dev上运行此查询时,查询位于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_
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上存储和加载的图像之外是相同的,但是这些与数据库调用无关。