WordPress可以处理多少帖子?

时间:2020-07-21 作者:Kabir

我在wordpress cms中维护一个多用户博客网站。我每天收到30/40个帖子,年底时平均大约有10万个帖子。每篇文章都包含一幅约140kb文件大小的特色图片。

该网站仍然是新的,只发布了几千条帖子。但我查看了404报告。这很糟糕,在主域中命中率约为100 404(https://www.mysite.com) 每天。总共150次点击。

注意:我使用cloudflare cdn。

为什么会这样?为什么我的主域名是404?wordpress可以处理多少帖子?(不是大帖子,平均15行,还有一张特色照片。)

有人能启发我吗

爱情

1 个回复
SO网友:Tom J Nowell

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_valuerandNOT 或者__not_in 子句都使数据库构建临时数据库表,或全表扫描。它们基本上很昂贵,随着帖子数量的增加,速度会变慢(是的,当你有10篇帖子时,速度会很快,但当你有100篇帖子时,速度不会太快)。

但重要的是,它们非常受欢迎。大多数插件和主题开发人员都没有意识到这一点,他们在帖子中添加了标志,这些标志应该是分类法中的术语,这削弱了网站处理大量帖子或大量访问者的能力,大大降低了网站的速度。

其中重要的一点是,通过运行大量查询,您的站点会变得更慢,并且您的服务器可以处理更少的并发访问者。如果查询足够重,它将无法及时完成,页面将无法呈现。如果同时发生太多繁重的查询,数据库可能会失效。

查询监视器等工具可以帮助您在插件和主题中识别这些查询。

服务器电源

Queries are the biggest determiner of how big a site can get. 如果开发人员知道自己在做什么,那么在超昂贵的专用硬件上构建一个有1k个帖子的糟糕网站可能会比在超便宜的共享主机上构建一个有100k个帖子的合适网站慢。

尽管如此,专用数据库服务器可能会有所帮助,而不是将其放在同一台机器上。SSD也有帮助,很多RAM也是如此。但这不会像大多数人预期的那样产生巨大影响。

如果选择是在硬件上花更多的钱,还是在修复查询上花更多的钱,那么一定要选择查询

磁盘空间

您可能存储了太多帖子,磁盘空间不足。这通常意味着您有一个真正庞大的数据库,并且有许多额外的表不是POST。发生这种情况的可能性非常小,以至于我想不出一个例子,在使用WP 13年后,有太多帖子耗尽了磁盘空间。我包括这主要是为了完整性。

相关推荐

Posts missing on author page

我经营着一个新闻网站,当时正在编辑PHP的作者页面。我想我无意中删除了一些代码,因为现在没有帖子显示在任何作者页面下。这是我的代码: <?php if( ! get_theme_mod( \'penci_disable_breadcrumb\' ) ): ?> <?php $yoast_breadcrumb = \'\'; if ( function_exists( \'yoast_breadcrumb\' )