WordPress可以处理的帖子数量没有严格的上限。您的站点的实际限制取决于以下顺序:
您的代码库运行的查询服务器电源磁盘空间,但在此之前,WP will not generate 404\'s because there are too many posts. 如果这是您试图调试的问题,那么认为这是因为帖子太多的理论是不正确的。如果站点有太多的帖子要运行,则会生成PHP超时致命错误,或者报告无法访问数据库。或者,它会起作用,但速度要慢得令人麻木。
网站自然会受到404次点击,要么是因为用户复制URL时出错,机器人尝试了随机地址,要么是因为恶意软件攻击了它知道的每一个漏洞(恶意软件不会检查你是否正在运行WP,它只是运行所有这些漏洞,希望1能起作用,你甚至可能会在那里看到Drupal漏洞)。
代码库运行的查询
This is by far and away the biggest determiner of how big your site can get in traffic and post count. 如此之多以至于你可以轻易忽略另外两个。
错误的查询是性能不佳的主要原因,并且随着帖子数量的增加,查询速度会变慢。
有一些WP网站能够处理数百万个帖子和数十亿访客。
然而,我看到至少有一个网站在企业级缓存的情况下,通过一个未缓存的查询来查找具有特定元价值的帖子,从而使这些网站屈服。
有些查询是线性扩展的,这些查询很好,并且可以轻松优化,它们可以在大量帖子中快速运行。
但是,有些查询没有。以下是一些示例:
指定meta_query
参数,或meta_key
+ meta_value
任何按排序的查询rand
任何使用NOT
或者__not_in
子句都使数据库构建临时数据库表,或全表扫描。它们基本上很昂贵,随着帖子数量的增加,速度会变慢(是的,当你有10篇帖子时,速度会很快,但当你有100篇帖子时,速度不会太快)。
但重要的是,它们非常受欢迎。大多数插件和主题开发人员都没有意识到这一点,他们在帖子中添加了标志,这些标志应该是分类法中的术语,这削弱了网站处理大量帖子或大量访问者的能力,大大降低了网站的速度。
其中重要的一点是,通过运行大量查询,您的站点会变得更慢,并且您的服务器可以处理更少的并发访问者。如果查询足够重,它将无法及时完成,页面将无法呈现。如果同时发生太多繁重的查询,数据库可能会失效。
查询监视器等工具可以帮助您在插件和主题中识别这些查询。
服务器电源
Queries are the biggest determiner of how big a site can get. 如果开发人员知道自己在做什么,那么在超昂贵的专用硬件上构建一个有1k个帖子的糟糕网站可能会比在超便宜的共享主机上构建一个有100k个帖子的合适网站慢。
尽管如此,专用数据库服务器可能会有所帮助,而不是将其放在同一台机器上。SSD也有帮助,很多RAM也是如此。但这不会像大多数人预期的那样产生巨大影响。
如果选择是在硬件上花更多的钱,还是在修复查询上花更多的钱,那么一定要选择查询
磁盘空间
您可能存储了太多帖子,磁盘空间不足。这通常意味着您有一个真正庞大的数据库,并且有许多额外的表不是POST。发生这种情况的可能性非常小,以至于我想不出一个例子,在使用WP 13年后,有太多帖子耗尽了磁盘空间。我包括这主要是为了完整性。