私はWPでメンバーログインサイトをデザインしたいのですが、WordPressが同じデータベースで40000人以上のユーザーを扱うことができるという疑問がありますか?
私はこれについてはよく分からないので、私はここで私の仕事を考えています。 WPで私のプロジェクトを進めるために誰かがこれについて正確に知っているならば私を助けてください。
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(またはカスタムの投稿/データ)がある場合、metaで見つかったプロパティを検索するのは非常に遅くなることです。まずメタテーブル内のすべてのエントリで必要な基準を検索し、次にテーブルから関連する投稿を取得します。重要なのは、それぞれの基準を個別に検索する必要があるということです。タグを1回検索し、 'meta1'の値Xを持つ投稿を取得し、次にcustomcriteriaなどの2番目の基準を検索し、customcriteriaでcustomcriteriavalue1を持つ投稿IDを取得してから、これらの共通部分を取得して次に進みます。その交差点を持つ投稿テーブルの投稿詳細。
例として - WooCommerceに30,000の商品を入れると、以下の答えで説明されているように、あなたはwp_postmetaに〜1,800,000の行になってしまうでしょう:
そのため、これによって検索が非常に非効率的になるだけでなく(特に複数の条件でwp_postmetaに自己結合する場合)、さらに1,8ミルの行の中から1つの行を照会してもパフォーマンスが低下します。
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に統合した他のプラグインを使用して検索を高速化することもできます。
私はあなたがさらに多くのユーザーを走らせることができると思います。あなたを制限することができる唯一のものはあなたのサーバーです。特にMySQLサーバーの場合は、適切に拡張する必要があります。たとえば、wordpress.com
は4万人以上のユーザーを実行しますが、安定性のために強力なシステム、大量のロードバランサなどを使用します。
問題はWPがこれらの2つの主要技術で開発されているのでWordPressの代わりにphp-mysqlスタックハンドルを何人のユーザが使えるかということです。
あなたが高度なサーバーテクニックでサーバーを設定することができれば、良い管理されたサーバーでHost WP、最適化されたデータベースロードとクエリと言っても、WPはあなたが望むだけのメンバーを扱うことができます。
あなたが共有ホスティングにwordpressをインストールするならば、あなたはあなたのWP能力を制限しています。一方、クラウドベースまたは専用のホスティングサーバからWPを実行して自分自身を管理できる場合は、望ましい結果が得られるはずです。
Wordpressは複雑なデータベースの採石場を処理することができます。あなたはこれをチェックアウトすることができます https://codex.wordpress.org/Installing_WordPress
また、wordpessを高度なアプリケーション開発フレームワークとして使用することで、大規模で複雑なデータベースの負荷に対応できるようにur installを実行できます。
また、このシリーズをチェックすることができます: http://code.tutsplus.com/articles/using-wordpress-for-web-application-development-wp_user_query--wp-35015
これが役立つことを願っています。ありがとう
あなたが何人のWordpressユーザを持つことができるかというボトルネックは、ユーザ管理ページでPHPタイムアウトが有効になることです。
すべてのユーザーが少なくとも1つの役割を持っていると仮定すると、wp_capabilities
テーブルには逐次化された役割の配列を持つuser_metadata
エントリーがあります。
管理ページには、それぞれの役割のタイプを持つユーザーの数が表示されます。そのため、すべてのwp_capabilities直列化配列をロードし、それを非直列化してから合計数を表示する必要があります。
300,000人のユーザーがいるとき、ユーザー管理ページは構築するのに44秒かかります。
つまり、各ユーザーはページの読み込み時間に0.00014666666秒を追加します。
あなたのPHPタイムアウトが60秒であると仮定すると、それは約400,000ユーザーに制限を置くでしょう。
しかし、私はかなり古くて遅いサーバを動かしています。より速いハードウェアは物事を大いに改善するでしょう。