注意:现在我知道问题的来源,我修改了问题.它现在只包含所需的信息.
我是Laravel PHP框架的新手.
我的计算机上有一个非常小的应用程序.它连接到MySQL数据库并具有用户模型.我使用Auth类登录和注销.
一切正常,但是当我登录时,加载页面大约需要一秒钟,这非常慢.当我没有登录时,这只是几毫秒.
通过使用内置的分析器,我意识到了两个问题.首先,就像我说的,加载页面需要超过1000毫秒.其次,每次我登录时,框架都会生成一个SQL.查询会搜索具有特定ID(我的id)的用户.我想这是获取有关登录用户的信息.但是不应该有某种缓存.如果我的网站每秒必须管理很多请求,这会成为一个问题.
我意识到Auth::check()在视图中使用是导致问题的原因.我有4个左右Auth::check()是我的Blade视图.当我没有时,它会很快.如果我有一个,它很慢.然后,无论我有多少,它都不会慢得多.这就像Auth类的初始化需要花费太多时间或类似的东西.我想它解释了为什么它只在我登录时发生.
我深入研究了Laravel的代码,我发现当Auth::check()第一次调用时,Auth类需要通过从数据库中检索用户的信息来"激活"我的Session.这解释了每个页面请求正在执行的查询.但是,由于分析器说查询甚至不需要一毫秒来执行,我仍然不知道为什么它会减慢应用程序的速度.
新信息:即使我没有向数据库发送查询,连接到它的简单操作也需要几秒钟.这就是它变慢的原因.我想我已经非常接近解决问题了.
任何想法到目前为止?
提前致谢.
Auth::check()视图中的事实不会改变任何东西.Auth::guest()并不能解决问题.Mar*_*ois 35
我终于找到了解决这个问题的方法.
在许多论坛上阅读有关XAMPP,MySQL和PHP的一些帖子时,我在某处读到了最好使用127.0.0.1,因为locahost需要额外的DNS查找.
在数据库配置文件中,我只是将locahost更改为127.0.0.1.
现在一切都很快.
我发现这很奇怪.在用于建立数据库连接的配置文件中使用locahost需要一秒多的时间!