在性能受到影响之前,WordPress可以处理多少类别?

时间:2019-04-25 作者:badcarbine

我需要大约2750000个独特的类别,有几十万个家长。我稍后会测试它,但我正在工作。有人知道一个基本的托管计划是否可以处理这个问题吗?我的DB计划中没有带宽或存储限制。所以我想这只是内存和CPU限制的问题,我现在还不知道。

提前感谢!

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

在性能下降之前,WordPress可以处理多少类别?

It depends.. 您无法找到准确的答案,因为变量太多,从主机位置、运行查询的类型、运行查询的硬件、性能期望、缓存、使用的函数等等

我需要大约2750000个独特的类别,有几十万个家长。

当然数据库可以保存这个,但这不是你真正想要的

我稍后会测试它,但我正在工作。

这是您进入灰色区域的地方。假设你有一个仓库,有250万个独特的苹果,每个苹果都有一个标签。

首先,我们已经勾选了关于储存的方框,我们有仓库,它正在储存苹果,一切都很好。

其次,我们想要1768923\'rd苹果。

有多少工人可以去拿苹果现在,这是一个基本的提取,但您将要进行基本提取吗?能够找回苹果固然不错,但你可能想做一些更复杂的事情:

取所有红苹果,取所有绿苹果,这些现在遇到了新的限制。假设有70万个青苹果,那么,你必须把所有这些苹果都拖走,这需要时间。正如数据库必须发送所有这些类别一样。页面生成时间有一个时间限制,您只有这么多RAM来存储内容。

这也导致了一种更可怕的查询类型。想象一下,如果你要的是所有不是绿色的大苹果!现在,你不仅要拖运所有的苹果,还要单独检查每一个苹果,把它拖到一个新的苹果仓库,储存所有不是绿色的苹果,然后,在新仓库中再次搜索大苹果。

最后,让我们假设您的服务器很幸运,可以做到这一点,但您有多个请求?你预计会有多少流量?你预计有多少同时来访的人是2人?5.100?1000?我已经看到,在较小的数据集上进行更简单的查询会导致服务器在高流量下崩溃,因为他们编写查询时要求所有帖子的post meta等于X。您使用的查询类型很重要。

例如,如果你每次都试图在类别中添加帖子数量的括号,或者你试图按帖子数量排序,我预计你的网站会失败。这是因为它必须对每个术语进行子查询才能找到答案,并将它们组装到一个临时表中,然后在按照需要排序后运行所需的查询。

数据库做了大量的索引、编目和备忘表以加快速度,并避免逐行检查,随着表大小的增长,更复杂的查询的成本也会增加。这就是为什么有些网站速度很快,但爬行速度很慢,超过200篇文章,而其他网站在2000篇文章中疾驰而过,没有任何减速

有人知道一个基本的托管计划是否可以处理这个问题吗?

这不是一个讨论论坛,关于服务或产品的建议在这里是无关紧要的。但请记住,无论是流量、数据大小等,您都不应该依赖共享主机来完成任何规模的事情

我的DB计划中没有带宽或存储限制

这听起来像是超便宜的慢速共享主机。他们可以向您承诺PB的存储空间,因为他们知道即使您尝试,也无法在那里获得PB的存储空间。

这些限制几乎完全取决于您打算对这些类别执行何种查询。

所以我想这只是内存和CPU限制的问题,我现在还不知道。

不过,我可以指出几件事:

您将无法在页面上列出所有类别,您应该避免使用WP提供的帮助程序功能,例如wp_list_categories 并处理较低级别的API,如wp_list_categories 将花费太长时间,永远不要通过术语元搜索术语,永远不要在样式查询中进行搜索。根本问题是,无论您是否可以存储,275万个唯一类别都是无法管理的。我非常怀疑您是否会自己手动输入所有这些数据,或分配这些类别。仅从UI/UX的角度来看,即使使用分页,也无法将它们列出。您面临的大多数挑战与技术限制无关,但会有技术限制。

要找到这些技术限制,你唯一真正知道的方法就是尝试。无论是哪种情况,这都是一种可能出现严重错误的情况,或者你隐瞒了有关情况的一些信息,也许是为了让它更通用,以期得到更好的答案?或者与你的工作相关的过度谨慎。

此外,正如我前面所说的,这些技术限制与您向数据库提出的查询和问题的类型有关,而与它们的简单存储无关。

否则,没有人可以对这个答案说是或否,不能用可用的信息来具体回答

相关推荐

Display Custom Taxonomy names

我正在尝试显示自定义帖子类型的自定义分类法。因此,此分类法特定于此自定义帖子类型。不幸的是,我无法让它们显示出来。这是我在函数中的代码。php注册自定义分类法:add_action(\'init\', \'products_categories\', 0); function products_categories(){ $labels = array (\'name\' => _x(\'Product Categories\',\'taxonomy general nam