I have read through multiple questions here on StackExchange that concern WordPress scaling and the common opinion is that WordPress is indeed highly scalable provided you have the infrastructure to support it. However, all opinions point and talk about the database scaling.
However, I must ask out of curiosity as to how scalable is the WordPress code? I find numerous places within the code where User IDs or Post IDs are cast as integers. Now, PHP puts limitation on range of integers to -2147483648 to 2147483647
(signed) for 32 bit and 9223372036854775807
for 64 bit. Thus limiting the code to work in that range. So if you happen to have a Post ID or a User ID of 100000000000000
it shall be converted to 2147483647
on 32 bit systems. And a similarly on 64 bit. Effectively, limiting the system.
So, though the database allows for scaling, the code limits the same. I may be entirely wrong with my assumptions, if so I’d like to be educated on the same. And if otherwise, how do we scale the code? Or are claims of WordPress scalability false? Also what are other possibilities where the code could be limiting the scalability?
2 s
If INT
is set to UNSIGNED
, allowing only non-negative integers, your value range is from 0
to 4294967295
.
Thats…
4,294,967,295 (4 billion +).
…for the given table. Just to put things into perspective.
Only through poor management and unnecessary incrementation would you exhaust that range, say for your posts
table as an example.
That said if you have some unique requirement that uses that entire range for a table then simply create another. WordPress allows for that.
There’s also the possibility for multiple DBs (http://codex.wordpress.org/HyperDB) being one example.
If you’re pushing the upper limits of a standard table primary key, then you would already be scaling your application beyond the traditional single table schema to handle such quantities of content.
Notice how I said application and not blog? At this point, its likely that your site resembles nothing like the common blog does and instead is much more an application, a data management system.