問題描述
我在這裏閲讀了有關 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。