MySQL缓慢加载 - 分页

时间:2017-04-24 06:56:33

标签: mysql joomla

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

http://www.cmsjunkie.com/j-businessdirectory

我们对开发者有点不同意见。

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

请参阅下面加载速度缓慢的网址,我们有大约1100个与此类别相关的条目。

http://www.shoppingonline.ie/category/clothes-shops-womens

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

以下是一个分类广告网站的示例,该网站在爱尔兰展示了66,914个“汽车”广告

donedeal.ie/all?words=cars&area=Ireland

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

你能否证实这是应该正常运作的方式?当然,上面的示例并没有检索到66,914,因为如果确实如此,性能会非常差,而且目前它的加载速度非常快。

请参阅以下来自开发者的回复。

你必须误解整个情况。 我们不会立即检索所有结果。如您所见,一次只能检索20个项目。 问题是mysql必须通过所有符合搜索条件的1000个结果按订单标准排序,然后在请求的页面窗口中获得20个结果。 这导致了性能损失。这不是一个错误。这是Mysql的性能限制。 正如您所看到的,搜索效果较差,结果较少,证明没有错误或编码问题。 我希望我们现在澄清了这种情况。 您引用的站点必须使用其他数据库引擎(付费数据库引擎)或更高效的谷歌等索引。

3 个答案:

答案 0 :(得分:0)

这个加载时间肯定会让客户烦恼。他们似乎并没有限制他们检索的结果数量。您发布到页面的链接如下所示,加载大约需要17秒: http://www.shoppingonline.ie/category/clothes-shops-womens

如果我点击第2页,加载只需8.8秒(这仍然很糟糕但更好)。注意网址: http://www.shoppingonline.ie/component/jbusinessdirectory/search/266?Itemid=101&controller=search&categorySearch=266&orderBy=packageOrder desc& limit = 20& start = 20

& limit = 20可能是你的开发人员告诉你的网站从你的数据库中检索最多20行的方式,而没有它,它似乎抓住了一切。他们需要在主页上加上相同的限制。

您的流量似乎也会被路由到doubleverify.com,然后再路由到您的网站。 Google Analytics等工具会在您的用户登陆您的网页后跟踪您的网络流量,从而无需在整个网络上退回。我和你的开发人员坐下来,确切地询问用户在登陆实际页面之前有多少网站被反弹。这些东西很耗时。

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

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

答案 1 :(得分:0)

我测试了那个页面。加载非常慢,耗时16.x秒。 您需要聘请一位专家自由职业者,他们在网站速度优化方面做了大量工作。

答案 2 :(得分:0)

我们有一个similar performance problem with Mosets Tree - 揭示真正问题的方法是检查MySQL慢查询日志(这应该在my.cnf文件中启用)。顺便说一下,他们只显示20条记录的事实并不意味着他们只检索那20条记录。此外,这可能不是问题 - 问题可能是由一些非常复杂的查询和/或一些没有正确索引的查询引起的。

同样,解决问题的关键是通过慢查询日志。您还可以启用Joomla调试,并检查每个查询所花费的时间。