MySQL 加载缓慢 - 分页

标签 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=爱尔兰

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

您能确认这是正确的工作方式吗?当然,上面的示例不会检索 66,914,因为如果检索到,性能确实会非常差,而且目前加载速度非常快。

<小时/>

请参阅以下开发人员的回复。

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

最佳答案

这个加载时间肯定会惹恼客户。他们似乎并没有限制检索结果的数量。您发布到页面的链接如下所示,加载大约需要 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 中还有很多空行,这可能会使您的网页大小增加一倍或三倍,这无助于快速加载。它们仍然可以具有可读的格式,而无需所有额外的空行。

关于MySQL 加载缓慢 - 分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43581645/

相关文章:

mysql - 在 MySql 的 where 子句中使用别名

php - mysql 外键(违反完整性约束)

html - 从 SQL 表中获取图像

mysql - 查询为空 SQL=

database - Joomla 3.0 组件 - 使用 JInput 向 JForm 添加字段输入

php - 如何使用 php mysql 根据下拉选择更新另一个字段

mysql - 需要左连接吗? WHERE 条件的行为类似于 INNER JOIN

mysql - 在其他服务器上恢复mysqldump不会恢复密码

joomla - 在 Joomla 的另一个模块中加载一个模块

javascript - ajax状态代码:303是什么错误