wake-up-neo.net

Wie viele Benutzer können mit WordPress umgehen?

Ich möchte eine Mitglieder-Anmeldeseite in WP erstellen, habe jedoch Zweifel, dass WordPress mehr als 40000 Benutzer in derselben Datenbank verarbeiten kann.

Da ich mir nicht sicher bin, bücke ich mich hier. Bitte helfen Sie mir, wenn jemand genau darüber Bescheid weiß, um mein Projekt mit WP fortzusetzen.

10
prasad

Entsprechend der WP -Datenbankstruktur lautet die ID in wp_users Bigint (20) UNSIGNED, sodass Sie "theoretisch" 18446744073709551615 Benutzer hinzufügen können. http://dev.mysql.com/doc/refman/4.1/en/integer-types.html

9
Overdose

Ein bisschen zu spät, um dies zu beantworten, aber da es für die relevante Suche ansteht, wird dies für jemanden von Nutzen sein:

WordPress verwendet das EAV-Datenbankschema für einen Teil seiner Datenbankimplementierung. Dies betrifft sowohl die Daten als auch die Benutzer. (Sie werden in getrennten Tabellen aufbewahrt)

Um es aus Datenperspektive zu erklären:

Zusammen mit den direkt zugänglichen postbezogenen Details in wp_posts werden zahlreiche Metas für jeden Post in die wp_postmeta-Tabelle gestellt. Alle Daten, die für den Beitrag (oder den benutzerdefinierten Beitragstyp) relevant sind.

Das Problem ist, wenn Sie HEAPS von Posts oder Seiten (oder benutzerdefinierten Posts/Daten) haben, wird es ziemlich langsam, nach Eigenschaften zu suchen, die in Meta gefunden werden. Sie durchsuchen zuerst alle Einträge in der Metatabelle nach den Kriterien, die Sie benötigen, und erhalten dann den entsprechenden Beitrag aus der Tabelle. Der Kicker ist, dass Sie nach JEDEN Kriterien separat suchen müssen. Bei einer Suche nach einem Tag erhalten Sie die Posts mit dem Wert X für 'meta1'. Anschließend suchen Sie nach zweiten Kriterien, z. B. customcriteria, und erhalten Post-IDs mit customcriteriavalue1 in customcriteria Die Post-Details aus der Post-Tabelle mit dieser Kreuzung.

Als Beispiel: Wenn Sie 30.000 Produkte in WooCommerce eingeben, erhalten Sie ~ 1.800.000 Zeilen in wp_postmeta, wie in der folgenden Antwort erläutert:

Post Meta vs separate Datenbanktabellen

Dies macht die Suche nicht nur sehr ineffizient (insbesondere, wenn Sie Self-Joins für wp_postmeta nach mehreren Kriterien ausführen), sondern auch das Abfragen einer einzelnen Zeile aus 1,8-Millionen-Zeilen führt zu Leistungseinbußen.

EAV-Schemamangel.

Bei vielen Beiträgen macht die Implementierung von WordPress db komplexe Suchvorgänge sehr langsam.

Das Ausführen einer WordPress-Site mit Tausenden von Beiträgen ist durchaus machbar, wenn Sie Caching-Plugins verwenden. Sie können noch mehr gehen. Aber die Suche wird ein Problem sein.

............

Das gleiche gilt auch für Benutzer - wp_usermeta verwendet auch das gleiche EAV-Format. Wenn Sie also viele Benutzer und viele Plugins haben, die verschiedene Benutzerdaten in wp_usermeta speichern, werden Sie den gleichen Leistungscharakter haben.

Ganz zu schweigen von der Tatsache, dass Sie bei so vielen Benutzern wahrscheinlich bereits eine hohe Anzahl von Posts haben werden - es sei denn, Ihre App hat hauptsächlich mit Benutzern zu tun (CRM usw.) und Sie speichern Ihre Benutzerdaten in wp_usermeta anstelle von wp_postmeta . (Unwahrscheinlich).

.........

Es gibt einige Plugins, die versuchen, dieses Problem zu umgehen, z. B. Meta Accelerator.

https://wordpress.org/plugins/meta-accelerator/

Dieses Plugin nimmt alle Daten für einen bestimmten Beitragstyp, den Sie auswählen, und legt sie in flachen Tabellen ab. Dies beschleunigt die Suche und die Abfrage einzelner Werte.

Aber dieses Plugin steckt noch in den Kinderschuhen.

Alternativ können Sie ElasticSearch auf dem Server installieren und das ElasticPress-Plugin oder ein anderes Plugin verwenden, das es in WordPress integriert, um solche Suchvorgänge zu beschleunigen.

5
unity100

Ich denke, Sie können noch mehr Benutzer ausführen. Das Einzige, was Sie einschränken kann, ist Ihr Server. Sie müssen es richtig skalieren, insbesondere den MySQL-Server. Zum Beispiel läuft wordpress.com mit mehr als 40000 Benutzern, aber sie verwenden besonders leistungsstarke Systeme für Stabilität, Tonnen von Lastausgleichsgeräten usw.

5
Kee Ross

Die Frage sollte sein, wie viele Benutzer PHP-MySQL-Stack anstelle von WordPress handhaben können, wenn WP auf diesen beiden Haupttechnologien entwickelt wird.

Wenn Sie Server mit erweiterten Servertechniken konfigurieren können, Host WP auf einem gut verwalteten Server, optimierte Datenbanklast und Abfragen, dann kann WP so viele Mitglieder verarbeiten, wie Sie möchten.

Wenn Sie WordPress auf einem gemeinsam genutzten Hosting installieren, schränken Sie Ihre WP -Fähigkeit ein. Wenn Sie sich dagegen mit WP von einem Cloud-basierten oder dedizierten Hosting-Server aus verwalten können, sollten Sie das gewünschte Ergebnis erzielen.

Wordpress ist in der Lage, komplexe Datenbank-Steinbrüche zu bearbeiten. Sie können dies überprüfen https://codex.wordpress.org/Installing_WordPress

Die Verwendung von WordPess als fortschrittliches Framework für die Anwendungsentwicklung ermöglicht es Ihnen, Ihre Installation für große/komplexe Datenbanklasten zu konfigurieren.

sie können diese Reihe auch chk: http://code.tutsplus.com/articles/using-wordpress-for-web-application-development-wp_user_query--wp-35015

Hoffe das wird helfen. Vielen Dank

3
user1982023

Ich habe herausgefunden, dass der Flaschenhals für die Anzahl der Wordpress-Benutzer das Timeout PHP ist, das auf der Administrationsseite des Benutzers angezeigt wird.

Angenommen, alle Benutzer haben mindestens eine Rolle, dann haben sie einen wp_capabilities-Eintrag in der user_metadata-Tabelle mit einem serialisierten Array von Rollen.

Auf der Administrationsseite wird angezeigt, wie viele Benutzer mit jedem Rollentyp vorhanden sind, sodass jedes einzelne serialisierte wp_capabilities-Array geladen, unserialisiert und anschließend die Gesamtanzahl angezeigt werden muss.

Wenn ich 300.000 Benutzer habe, dauert der Aufbau der Benutzeradministrationsseite 44 Sekunden.

Dies bedeutet, dass jeder Benutzer der Ladezeit der Seite 0,00014666666 Sekunden hinzufügt.

Angenommen, Ihre PHP -Zeitüberschreitung beträgt 60 Sekunden, was eine Begrenzung auf rund 400.000 Benutzer bedeuten würde.

Ich verwende jedoch einen ziemlich alten und langsamen Server. Eine schnellere Hardware würde die Dinge erheblich verbessern.

3
Felix Eve