我在PHP中开发了一个应用程序,该应用程序具有完整的用户管理系统以及动态表单创建功能,数据导入,导出功能等等。我使用Mysql作为数据库。当我在该应用程序上进行测试时,它工作得非常好。现在我已经在客户端部署了这个应用程序,差不多50-60个用户正在运行这个应用程序,已经两个月了,现在他们正面临一些问题。他们说应用程序有时会很晚才做出响应,有些时候需要花费很多时间才能做出回应。例如,要使用此应用程序,用户需要登录到应用程序,现在一段时间登录功能完全没问题,用户可以轻松地在一段时间内花费大量时间登录。我亲自调查并面对同样的问题。现在我很困惑实际问题在哪里。
我怎么能得到任何确切问题的答案。
答案 0 :(得分:1)
您需要提供更多信息才能获得合适的答案。在提供这些数据时,您几乎肯定会解决问题......
在大多数数据库驱动的应用程序中,数据库是出现性能问题的第一个地方,尤其是在数据扩展时。只有数据库中的一些记录才能正常工作的系统在扩展时可能会停止运行......
所以,当人们使用系统时,我要做的第一件事就是look at the database processes,并寻找长时间运行的查询。优化这些查询,并冲洗&重复。
在您的数据库访问逻辑周围编写调试日志语句也是值得的,这样您就可以查看历史性能统计信息 - 如果客户端告诉您系统昨天运行缓慢但今天运行正常,这很有用。
如果不是数据库,则需要查看PHP性能。您需要一个分析器(尝试XDebug)并查找PHP代码中的瓶颈。
如果它既不是数据库也不是PHP代码,那么您的Web服务器软件(Apache或您正在使用的任何软件)可能存在配置问题。这很难调试 - 您需要遍历配置文件并寻找限制(例如" MaxConnections")。
如果不是那些东西,网络可能就是问题所在。这种情况非常罕见 - 如果网络无法支持Web应用程序,文件共享,电子邮件和视频会议也将受到影响。询问您的客户是否是这种情况。要证明或反驳,请在您的网络服务器上放置一个合适的大小文件(一个20MB的MP3文件应该这样做)并测试在应用程序运行缓慢时下载它所需的时间。
答案 1 :(得分:0)
THIS IS MOST LIKELY TO BE THE SOLUTION:
如果你的mysql有大量数据,请尝试索引数据库。例如,您登录时遇到问题,因此请尝试在“用户”表中索引用户名。坦率地说,问题中提供的数据不足以提出具体的解决方案。
答案 2 :(得分:0)
如果您最初部署应用程序的速度是正确的,我认为问题将是数据库。
您的数据库是否已正常化?你有正确的索引吗?您可以尝试索引在WHERE clausules中使用的所有列。
但是,正如Abhay Pai所说,提供的数据不足以解决这个问题。