2017-04-24 90 views
0

我们使用Joomla 3.6.5的最新版本号和J目录MySQL的加载速度慢 - Pagenation

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

最新版本,我们有一点与开发商存在分歧。

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

请参阅下面的URL加载速度放缓,我们有大约1100条目与此类别相关联。

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

但这应该没有什么差别吗?有网站1000网上有巨大的DB的和显示大量结果

的看到下方的分类广告网站,显示了“汽车”在爱尔兰66914个广告的例子

donedeal.ie/all?words =汽车& area = Ireland

所以我对开发者说的是,我们不应该只检索所有结果只显示在网页上显示的结果 - 目前20,然后网页开始踢,并加载下一个20结果等等

你能证实这是我的方式t应该正确吗?当然,上面的例子并不检索66,914,因为如果它的性能非常差,并且它现在加载非常快。

亲切的问候

斯科特


请参考下面从开发响应。

你一定误解了整个情况。 我们不会一次检索所有结果。正如你所看到的,一次只能检索20个项目。 问题是,mysql必须通过匹配搜索条件的所有1000个结果才能按顺序标准排序,然后在请求的页面窗口中获得20个结果。 这是造成性能损失。这不是一个错误。这是一个Mysql性能限制。 正如您所看到的,搜索性能良好,结果较少,并且证明没有错误或编码问题。 我希望我们现在已经澄清了这种情况。 您所指的网站必须使用更高效的其他数据库引擎(付费数据库引擎)或像google这样的索引。

+0

它不应该加载所有记录,然后丢弃不在当前页面上的记录。但是如果你能找到它正在运行的SQL语句,并找出背景中发生了什么,它会更有用。 –

+0

如果合理编写,1000个结果(尽管远非理想)对MySQL来说很小。然而,在检索数据到php之前,应该在数据库上完成对搜索条件和排序的检查。通常这涉及动态生成SQL。如果选择的框架不能支持这个,那么它可能是这个工作的错误工具。 – Kickstart

回答

0

这个加载时间肯定会让客户恼火。它们似乎不会限制他们检索的结果数量。你发布到你的网页的链接看起来像这样和需要约17秒的负载:如果我点击页面#2,花费仅为8.8秒加载(这仍然是可怕的,但更好) http://www.shoppingonline.ie/category/clothes-shops-womens

。注意网址: http://www.shoppingonline.ie/component/jbusinessdirectory/search/266?Itemid=101&controller=search&categorySearch=266&orderBy=packageOrder递减&上限= 20 &开始= 20

的&上限= 20大概是你的开发者告诉你的网站,从数据库中检索的20行的最大值,而没有说,似乎抓住一切。他们需要在主页上放置相同的限制。

它也似乎是你的流量被路由到doubleverify.com,然后到您的网站。 Google Analytics等工具会在用户登录到您的网页后跟踪您的网络流量,而无需让他们在网络中反弹。我会和你的开发人员一起坐下来,询问用户在实际页面登陆之前究竟有多少网站被反弹。这些东西非常耗时。

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

你的开发者在他们的HTML中也有很多空白行,这可能是你的网页的大小增加一倍或三倍,而这无助于快速加载。它们仍然具有可读的格式,没有所有额外的空白行。

+0

嗨民众非常感谢您的反馈,请参阅J Directory的开发者的上述回复。 –

+0

这是一个推销员罐装答案。您网站上列出的网站与放慢您的网站无关。此外,这不能解决您的问题。 Mysql能够以毫秒执行查询。他们似乎没有解决这个问题的意愿。 – user3795412

0

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

0

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

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