Câți utilizatori poate gestiona WordPress?

4 apr. 2013, 11:21:11
Vizualizări: 37.6K
Voturi: 11

Vreau să creez un site cu autentificare pentru membri în WordPress, dar am o îndoială cu privire la capacitatea WordPress de a gestiona mai mult de 40.000 de utilizatori în aceeași bază de date?

Nu sunt sigur despre acest aspect, așa că mi-am oprit munca aici. Vă rog să mă ajutați dacă cineva știe exact despre acest lucru pentru a-mi continua proiectul cu WordPress.

0
Toate răspunsurile la întrebare 5
0
10

Conform structurii bazei de date WordPress, ID-ul din wp_users este de tip Bigint(20) UNSIGNED, deci "teoretic" ai putea adăuga până la 18446744073709551615 de utilizatori. http://dev.mysql.com/doc/refman/4.1/en/integer-types.html

4 apr. 2013 15:57:54
0

Răspund puțin mai târziu la această întrebare, dar deoarece apare în căutări relevante, această informație va fi utilă cuiva:

WordPress folosește schema de baze de date EAV pentru o parte din implementarea bazei de date. Aceasta afectează atât datele, cât și utilizatorii. (Acestea sunt păstrate în tabele separate)

Să explicăm din perspectiva datelor:

Pe lângă detaliile postărilor accesibile direct în wp_posts, numeroase metadate sunt stocate în tabelul wp_postmeta pentru fiecare post. Orice date relevante pentru postare (sau tipul de postare personalizat).

Problema este că, dacă ai FOARTE MULTE postări sau pagini (sau date/postări personalizate), devine foarte lent să cauți orice proprietate găsită în metadate. Mai întâi cauți toate intrările din tabelul de metadate pentru criteriile de care ai nevoie, apoi obții postarea relevantă din tabel. Problema este că trebuie să cauți pentru FIECARE criteriu în parte. Deci, o căutare pentru etichetă, obții postările cu valoarea X pentru 'meta1', apoi cauți al doilea criteriu, să zicem, customcriteria și obții ID-urile postărilor cu customcriteriavalue1 în customcriteria, ȘI apoi iei intersecția acestora și mergi să obții detaliile postării din tabelul de postări cu acea intersecție.

Ca exemplu - introduceți 30.000 de produse în WooCommerce și veți ajunge cu ~1.800.000 de rânduri în wp_postmeta, așa cum este explicat în răspunsul de mai jos:

Metadate post vs tabele separate de baze de date

Deci, nu numai că aceasta va face căutările foarte, foarte ineficiente (mai ales când faci self-joins pe wp_postmeta pentru criterii multiple), dar chiar și interogarea unui singur rând din 1,8 milioane de rânduri provoacă o scădere a performanței.

Deficiența schemei EAV.

Deci, cu multe postări, implementarea bazei de date WordPress face căutările complexe foarte lente.

Administrarea unui site WordPress cu mii de postări este posibilă, dacă folosești plugin-uri de caching. Poți merge chiar și mai departe. Dar căutările vor fi o problemă.

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

La fel este și cu utilizatorii - wp_usermeta folosește același format EAV. Deci, dacă ai mulți utilizatori și multe plugin-uri care stochează diverse date ale utilizatorilor în wp_usermeta, vei avea aceeași scădere a performanței.

Fără să mai vorbim că, cu atât de mulți utilizatori, este probabil să ai deja un număr mare de postări - dacă aplicația ta nu este ceva care are de-a face mai mult cu utilizatorii (CRM etc.) și alegi să-ți stochezi datele utilizatorilor în wp_usermeta în loc de wp_postmeta. (Puțin probabil, totuși).

.........

Există câteva plugin-uri care încearcă să ocolească această problemă, cum ar fi Meta Accelerator.

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

Acest plugin ia orice date pentru orice tip de postare pe care îl alegi și le pune în tabele plate. Aceasta accelerează mult căutările și, de asemenea, accelerează interogarea oricărei valori singulare.

Dar acest plugin este încă în faza incipientă.

Alternativ, poți instala ElasticSearch pe server și folosi plugin-ul ElasticPress sau un alt plugin care îl integrează în WordPress pentru a accelera astfel de căutări.

22 feb. 2015 02:03:14
0

Cred că poți susține chiar și mai mulți utilizatori. Singurul lucru care te poate limita este serverul. Va trebui să îl scalezi corespunzător, în special serverul MySQL. De exemplu, wordpress.com rulează chiar peste 40.000 de utilizatori, dar folosesc sisteme extrem de puternice pentru stabilitate, o mulțime de echilibrare a încărcării (load balancers) și altele.

4 apr. 2013 14:29:20
1

Am descoperit că limitarea principală pentru numărul de utilizatori WordPress pe care îi poți avea este timeout-ul PHP care intră în joc pe pagina de administrare a utilizatorilor.

Presupunând că toți utilizatorii tăi au cel puțin un rol, ei au o intrare wp_capabilities în tabela user_metadata cu un array serializat de roluri.

Pagina de administrare afișează un număr al câți utilizatori au fiecare tip de rol, așa că trebuie să încarce fiecare array serializat wp_capabilities, să-l deserializeze și apoi să afișeze un număr total.

Când am 300.000 de utilizatori, pagina de administrare a utilizatorilor durează 44 de secunde să se încarce.

Asta înseamnă că fiecare utilizator adaugă 0,00014666666 secunde la timpul de încărcare al paginii.

Presupunând că timeout-ul tău PHP este de 60 de secunde, limita ar fi în jur de 400.000 de utilizatori.

Totuși, rulez pe un server destul de vechi și lent. Hardware-ul mai rapid ar îmbunătăți lucrurile semnificativ.

30 aug. 2018 16:26:13
Comentarii

Nu cred că impactul este liniar, dar sunt de acord cu esența ideii, nu atât de mult numărul contează, ci modul în care folosești informația și unde/când o accesezi

Mark Kaplun Mark Kaplun
30 aug. 2018 16:33:13
2

Întrebarea ar trebui să fie câți utilizatori poate gestiona stiva php-mysql în loc de WordPress, deoarece WP este dezvoltat pe aceste două tehnologii principale.

Fiind spus asta, dacă poți configura serverul cu tehnici avansate de server, găzdui WordPress pe un server bine gestionat, optimizat pentru încărcarea și interogările bazei de date, atunci WP poate gestiona câți membri dorești.

Dacă instalezi WordPress pe un hosting partajat, atunci îți limitezi capacitățile WP. Pe de altă parte, dacă poți gestiona singur rularea WordPress de pe un server cloud sau dedicat, atunci ar trebui să obții rezultatul dorit.

WordPress este capabil să gestioneze interogări complexe ale bazei de date. Poți verifica acest link: https://codex.wordpress.org/Installing_WordPress

De asemenea, folosirea WordPress ca un cadru avansat de dezvoltare de aplicații îți permite să faci instalarea ta să gestioneze încărcări mari/complexe ale bazei de date.

Poți verifica și această serie: http://code.tutsplus.com/articles/using-wordpress-for-web-application-development-wp_user_query--wp-35015

Sper că acest lucru va ajuta. Mulțumesc.

12 apr. 2014 21:14:31
Comentarii

Pentru clarificare, partea de PHP din stivă nu va fi problema dumneavoastră (Facebook este construit cu un PHP modificat), dar MySQL foarte bine ar putea fi un factor limitativ.

Dan Dan
15 apr. 2014 14:13:01

Utilizarea php/mysql singură are puțină legătură cu câți utilizatori poate gestiona o aplicație. Totul depinde de designul bazei de date și al aplicației. Am folosit php și mysql pentru a interoga un miliard de rânduri și a funcționat perfect.

111 111
20 iul. 2021 07:40:35