php – 为什么我的MySQL连接速度慢?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 为什么我的MySQL连接速度慢?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_6@ 我有一个连接表的查询.这是select语句:

SELECT *,A.id AS id,A.username AS username,G.desc AS customer_desc,H.id AS counter,SUM( F.amount_paid ) 
From tblcheckin AS A
LEFT OUTER JOIN tblrate AS B ON B.id = A.rate_id
LEFT OUTER JOIN tblrefaccom_tyPE AS C ON C.id = A.id
LEFT OUTER JOIN tblcust_bill AS D ON D.check_in_id = A.id
LEFT OUTER JOIN tblroom AS E ON E.room_no = A.room_id
LEFT OUTER JOIN tblpayment AS F ON F.check_in_id = A.id
LEFT OUTER JOIN tblrefcust_type AS G ON G.id = A.customer_desc
LEFT OUTER JOIN tblindex AS H ON A.id = H.check_in_id
WHERE A.check_out =  "0000-00-00 00:00:00"
group by F.check_in_id
ORDER BY check_out,check_in

结果:显示0到11行(总共12行,查询占用7.4061秒)

这就是Explain sql

这是我到目前为止所做的:
我设置optimizer_seArch_depth = 0,因为我认为它会像Joining many tables in mySQL中提到的那样工作.

在这做错了什么?我感谢每一个反馈.谢谢.

UPDATE.问题解决了.我从tblpayment,tblcust_bill和tblindex向check_in_id列添加了索引.这是新的Explain sql

解决方法

看看你的Explain,我可以看到几个连接需要全表扫描.您可能没有A.check_out,D.check_in_id,F.check_in_id(这是基于相对行数的杀手)和H.check_in_id的索引.这意味着必须扫描整个Darn表A,D,F和H才能找到相关的行.

索引那4行,查询次数应该会猛涨.

话虽如此,我很惊讶这已经不是很快,甚至没有优化.我在每个表中都看到了几万行 – 除非这些行非常庞大(顺便说一下糟糕的做法 – 将文本/ blob和大列分解成单独的表),你应该能够得到这些结果不到7秒.更像是我期望的70毫秒.我怀疑你必须调整你的MysqL服务器设置 – 使用更多ram,增加缓冲区大小等.但这些索引应该有很大帮助.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 为什么我的MySQL连接速度慢?全部内容,希望文章能够帮你解决php – 为什么我的MySQL连接速度慢?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。