WordPressで処理できるユーザーは何人ですか?


10

WPでメンバーログインサイトを設計したいのですが、WordPressが同じデータベースで40000人を超えるユーザーを処理できることに疑問がありますか?

これについてはよくわからないので、ここで自分の仕事をかがんでいます。ですから、WPで私のプロジェクトを進める上で誰かがこれについて正確に知っているなら、私を助けてください。

回答:



6

これに答えるには少し遅れますが、関連する検索が出てきたので、これは誰かに役立ちます:

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に統合する別のプラグインを使用して、検索を高速化することもできます。


5

さらに多くのユーザーを実行できると思います。あなたを制限することができる唯一のものはあなたのサーバーです。特にMySQLサーバーでは、適切にスケーリングする必要があります。たとえばwordpress.com、40000人を超えるユーザーが実行されますが、安定性、大量のロードバランサーなどのために、非常に強力なシステムを使用しています。


4

問題は、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は、スタックの一部は問題にはなりませんが(Facebookは変更されたPHPで構築されています)、MySQL非常に制限がある可能性があります。
ダン

3

ユーザー管理ページでPHPタイムアウトが発生することで、Wordpressユーザーがいくつ持つかというボトルネックが見つかりました。

すべてのユーザーが少なくとも1つのロールを持っているとすると、ロールのシリアル化された配列を持つテーブルにwp_capabilitiesエントリがありuser_metadataます。

管理ページには、各タイプの役割を持つユーザーの数が表示されるため、シリアル化されたすべてのwp_capabilitiesシリアル化配列をロードし、それをシリアル化解除してから、合計数を表示する必要があります。

300,000人のユーザーがいる場合、ユーザー管理ページの作成に44秒かかります。

これは、各ユーザーがページの読み込み時間に0.00014666666秒を追加することを意味します。

PHPのタイムアウトが60秒であるとすると、40万人程度のユーザーに制限がかかります。

しかし、私はかなり古くて遅いサーバーを実行しています。より高速なハードウェアは物事を大きく改善します。


影響は直線的ではないと思いますが、私はそれの要旨に同意します。それはそれほどの数ではなく、実際に情報を使用する場所とアクセス先
Mark Kaplun
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.