问题描述
我在这里阅读了有关 WordPress 扩展的 StackExchange 的多个问题,并且常见的意见是 WordPress 确实具有高度的扩展性,只要您有基础架构来支持它。但是,所有的意见都指向和谈论数据库缩放。
但是,如果 WordPress 代码有多么可扩展,那么我一定不得不提出疑问。我在代码中找到许多地方,用户 ID 或帖子 ID 被转换为整数。现在,PHP 将整数范围限制为 32 位的-2147483648 to 2147483647
(带符号),64 位的 9223372036854775807
。从而限制代码在该范围内工作。因此,如果您碰巧拥有 100000000000000
的帖子 ID 或用户 ID,则应将其转换为 32 位系统上的 2147483647
。和一个类似的 64 位。有效地限制了系统。
所以,虽然数据库允许缩放,但代码限制一样。我的假设可能是完全错误的,如果是这样,我也想受到同样的教育。否则,我们如何扩展代码?还是声称 WordPress 的可扩展性错误?还有什么其他可能性的代码可能会限制可扩展性?
最佳解决方案
如果 INT
设置为 UNSIGNED
,则仅允许 non-negative 整数,您的值范围是 0
到 4294967295
。
那是…
4,294,967,295 (4 billion +).
… 给定的表。只是把东西放在一边。
您的 posts
表只能通过管理不善和不必要的增量来排除这个范围。
这就是说,如果你有一些独特的要求,使用整个范围的一个表,然后简单地创建另一个。 WordPress 允许。
另外也可以使用多个 DB(http://codex.wordpress.org/HyperDB) 作为例子。
如果您正在推动标准表主键的上限,那么您已经将应用程序扩展到传统的单表模式之外,以处理这些数量的内容。
注意我怎么说应用程序而不是博客?在这一点上,您的网站可能不像普通博客那样类似,而是更多的应用程序,即数据管理系统。
次佳解决方案
像无限可扩展性一样酷,实际上并不需要对大多数项目进行编码。
这个亿万亿的这个限制足够高,你可以运行一个 WordPress 网络,所有的居民在 1000 公里宽的地球轨道上,目前的人口密度,每个仍然有 7 个帐户。或者以另一种方式,每个人的大约 15000 个帖子,如果大家在地球上使用你的网站。
我相信 WordPress 核心和大多数其他软件将在网络方面有一些主要的工作,在单个服务器可以在多个殖民地世界之间共享。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。