回答:
WPデータベース構造によると、wp_usersのIDはBigint(20)UNSIGNEDであるため、「理論的には」18446744073709551615ユーザーを追加できます。 http://dev.mysql.com/doc/refman/4.1/en/integer-types.html
これに答えるには少し遅れますが、関連する検索が出てきたので、これは誰かに役立ちます:
WordPressは、データベース実装の一部にEAVデータベーススキーマを使用しています。これは、データとユーザーの両方に影響します。(それらは別々のテーブルに保管されます)
データアングルから説明するには:
wp_postsの直接アクセス可能な投稿関連の詳細とともに、多数のメタが各投稿のwp_postmetaテーブルに投稿されます。投稿(またはカスタム投稿タイプ)に関連するデータ。
つまり、投稿またはページ(またはカスタム投稿/データ)のHEAPSがある場合、メタで見つかったプロパティを検索するのが非常に遅くなります。まず、メタテーブルのすべてのエントリで必要な条件を検索してから、テーブルから関連する投稿を取得します。キッカーは、各基準を個別に検索する必要があるということです。したがって、タグを1回検索すると、「meta1」の値がXの投稿が取得されます。次に、customcriteriaなどの2番目の基準を検索し、customcriteriaのcustomcriteriavalue1で投稿IDを取得して、これらの交差を取得してから、その交差点を持つ投稿テーブルからの投稿詳細。
例として-30,000製品をWooCommerceに入れると、以下の回答で説明するように、wp_postmetaに約1,800,000行が含まれます。
したがって、これにより検索が非常に非効率になるだけでなく(特に、複数の条件に対してwp_postmetaで自己結合を実行する場合)、1,8 milの行の中から単一の行をクエリしても、パフォーマンスが低下します。
EAVスキーマの不足。
そのため、多数の投稿があるため、WordPress dbの実装では複雑な検索が非常に遅くなります。
キャッシュプラグインを使用すれば、何千もの投稿があるWordPressサイトを実行することはかなり可能です。あなたはさらに行くことができます。しかし、検索は問題になります。
…………
ユーザーも同じです-wp_usermetaも同じEAV形式を使用します。したがって、多数のユーザーを取得し、さまざまなユーザーデータをwp_usermetaに格納するプラグインが多数ある場合、同じパフォーマンスヒットが発生します。
多くのユーザーが言うには言うまでもありませんが、アプリがほとんどのユーザー(CRMなど)に関係するもので、ユーザーデータをwp_postmetaではなくwp_usermetaに保存することを選択した場合を除いて、すでに多数の投稿がある可能性があります。 。(可能性は低いですが)。
.........
Meta Acceleratorなど、この問題を回避しようとするプラグインがいくつかあります。
https://wordpress.org/plugins/meta-accelerator/
このプラグインは、選択した特定の投稿タイプのデータを取得して、フラットテーブルに配置します。これにより、検索が大幅に高速化され、特異値のクエリも高速化されます。
しかし、そのプラグインはまだ始まったばかりです。
または、サーバーにElasticSearchをインストールし、ElasticPressプラグインまたはWordPressに統合する別のプラグインを使用して、検索を高速化することもできます。
問題は、WPがこれら2つの主要なテクノロジーで開発されているため、WordPressではなくphp-mysqlスタックハンドルを使用できるユーザーの数です。
とはいえ、高度なサーバーテクニックでサーバーを構成でき、適切な管理対象サーバーでWPをホストし、データベースの負荷とクエリを最適化すると、WPは必要な数のメンバーを処理できます。
共有ホスティングにワードプレスをインストールすると、WP機能が制限されます。一方、WPをクラウドベースまたは専用のホスティングサーバーから実行している場合は、目的の結果を得る必要があります。
Wordpressは複雑なデータベースのクエリを処理できます。あなたはこれをチェックすることができますhttps://codex.wordpress.org/Installing_WordPress
また、wordpessを高度なアプリケーション開発フレームワークとして使用すると、大きなインストールや複雑なデータベースの負荷を処理できるようになります。
このシリーズをチェックすることもできます:http : //code.tutsplus.com/articles/using-wordpress-for-web-application-development-wp_user_query--wp-35015
これがお役に立てば幸いです。ありがとう
ユーザー管理ページでPHPタイムアウトが発生することで、Wordpressユーザーがいくつ持つかというボトルネックが見つかりました。
すべてのユーザーが少なくとも1つのロールを持っているとすると、ロールのシリアル化された配列を持つテーブルにwp_capabilities
エントリがありuser_metadata
ます。
管理ページには、各タイプの役割を持つユーザーの数が表示されるため、シリアル化されたすべてのwp_capabilitiesシリアル化配列をロードし、それをシリアル化解除してから、合計数を表示する必要があります。
300,000人のユーザーがいる場合、ユーザー管理ページの作成に44秒かかります。
これは、各ユーザーがページの読み込み時間に0.00014666666秒を追加することを意味します。
PHPのタイムアウトが60秒であるとすると、40万人程度のユーザーに制限がかかります。
しかし、私はかなり古くて遅いサーバーを実行しています。より高速なハードウェアは物事を大きく改善します。
PHP
は、スタックの一部は問題にはなりませんが(Facebookは変更されたPHPで構築されています)、MySQL
非常に制限がある可能性があります。