Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
MySQL慢速加载-分页_Mysql_Joomla - Fatal编程技术网

MySQL慢速加载-分页

MySQL慢速加载-分页,mysql,joomla,Mysql,Joomla,我们使用的是Joomla 3.6.5的最新版本和J目录的最新版本 我们和开发者之间有点分歧 我们的目录在过去一年中有所增长,页面加载现在非常糟糕,每个类别有超过500个条目。J目录之所以这么说是因为我们有大量的条目 请看下面的url,加载速度正在减慢,我们有大约1100个条目与此类别相关 但这不应该有任何区别,对吗?网上有1000多个网站拥有巨大的数据库,并显示大量的结果 下面是分类广告网站的一个例子,该网站显示了爱尔兰66914条“汽车”广告 donedeal.ie/all?单词=汽车&面

我们使用的是Joomla 3.6.5的最新版本和J目录的最新版本

我们和开发者之间有点分歧

我们的目录在过去一年中有所增长,页面加载现在非常糟糕,每个类别有超过500个条目。J目录之所以这么说是因为我们有大量的条目

请看下面的url,加载速度正在减慢,我们有大约1100个条目与此类别相关

但这不应该有任何区别,对吗?网上有1000多个网站拥有巨大的数据库,并显示大量的结果

下面是分类广告网站的一个例子,该网站显示了爱尔兰66914条“汽车”广告

donedeal.ie/all?单词=汽车&面积=爱尔兰

所以我要对开发者说的是,我们不应该只检索页面上显示的所有结果——目前是20,然后分页开始,然后加载接下来的20个结果等等

你能确认这是正确的工作方式吗?当然,上面的示例没有检索到66914,因为如果检索到,性能确实会非常差,并且当前加载速度非常快


请参阅下面来自开发人员的回复

你一定误解了整个情况。 我们不会一次检索所有结果。正如您所见,一次仅检索20个项目。 问题是mysql必须检查所有1000个与搜索条件匹配的结果,按照顺序条件对它们进行排序,然后在请求的页面窗口中获得20个结果。 这将导致性能损失。这不是一个bug。这是Mysql的性能限制。 正如您所看到的,搜索在较少的结果中表现良好,这证明没有bug或编码问题。 我希望我们现在已经澄清了情况。
您所指的站点必须使用其他更高效的数据库引擎(付费数据库引擎)或像谷歌这样的索引。

这段加载时间肯定会让客户恼火。他们似乎没有限制检索结果的数量。您发布到页面的链接如下所示,大约需要17秒才能加载:

如果单击第2页,加载只需8.8秒(这仍然很糟糕,但更好)。请注意url: 描述和限制=20,启动=20

&limit=20可能是您的开发人员告诉您的网站从数据库中最多检索20行的方式,而如果没有这一点,它似乎会获取所有内容。他们需要在主页上设置相同的限制

您的流量似乎也被路由到doubleverify.com,然后再路由到您的网站。像Google Analytics这样的工具可以在你的用户登陆你的页面后跟踪你的网络流量,从而消除他们在整个网络上被反弹的需要。我会和你的开发人员坐下来,问他们在登陆到你的实际页面之前,用户到底访问了多少个网站。那东西很费时

就您的数据库而言,我从未使用过J目录,但几乎所有的数据库都能为您的数据库字段设置索引。索引将大大减少完成数据库查询所需的时间


开发人员的HTML中也有很多空行,这可能会使web页面的大小增加一倍或三倍,这无助于快速加载。它们仍然可以有一个可读的格式,没有所有额外的空行。

我已经测试了该页面。加载速度非常慢,需要16.x秒。 你需要雇佣一位在网站速度优化方面做了大量工作的自由职业者。

我们有一个解决方案-发现真正问题的方法是检查MySQL慢速查询日志(这应该在
my.cnf
文件中启用)。顺便说一下,它们只显示20条记录并不意味着它们只检索这20条记录。另外,这可能不是问题所在-问题可能是由一些非常复杂的查询和/或一些没有适当索引的查询引起的


同样,要想弄清问题的根源,关键是通过缓慢的查询日志。您还可以启用Joomla调试,并检查每个查询花费的时间

它不应该加载所有记录,然后丢弃不在当前页面上的记录。但是,如果您能够找到它正在运行的SQL语句,并找出后台真正发生的事情,那么它将更加有用。如果编写得合理,MySQL处理1000个结果(虽然远不理想)是很小的。但是,在将数据检索到php之前,应该对数据库进行搜索条件和排序检查。这通常涉及动态生成SQL。如果所选择的框架不能支持这一点,那么它可能是用于此项工作的错误工具。大家好,非常感谢您的反馈,请参阅上面J目录开发人员的回复。这是销售人员的固定答案。网站中列出的网站与降低网站速度无关。而且,这并不能解决您的问题。Mysql能够在毫秒内执行查询。他们似乎没有办法解决这个问题。