¿Cuántos usuarios puede manejar WordPress?

4 abr 2013, 11:21:11
Vistas: 37.6K
Votos: 11

Quiero diseñar un sitio con inicio de sesión para miembros en WordPress, pero tengo la duda de si WordPress puede manejar más de 40,000 usuarios en la misma base de datos.

No estoy seguro sobre esto así que he detenido mi trabajo aquí. Por favor ayúdenme si alguien sabe exactamente sobre esto para poder continuar mi proyecto con WordPress.

0
Todas las respuestas a la pregunta 5
0
10

Según la estructura de la base de datos de WP, el ID en wp_users es Bigint(20) UNSIGNED, por lo que "teóricamente" podrías añadir 18446744073709551615 usuarios. http://dev.mysql.com/doc/refman/4.1/en/integer-types.html

4 abr 2013 15:57:54
0

Un poco tarde para responder esto, pero como aparece en búsquedas relevantes, será útil para alguien:

WordPress utiliza un esquema de base de datos EAV para parte de su implementación de base de datos. Esto afecta tanto a los datos como a los usuarios. (Se mantienen en tablas separadas)

Para explicarlo desde el ángulo de los datos:

Junto con los detalles accesibles directamente relacionados con las publicaciones en wp_posts, numerosos metadatos se guardan en la tabla wp_postmeta para cada publicación. Cualquier dato relevante para la publicación (o tipo de publicación personalizada).

El problema con esto es que si tienes MUCHAS publicaciones o páginas (o datos/publicaciones personalizadas), se vuelve bastante lento buscar cualquier propiedad que se encuentre en los metadatos. Primero buscas todas las entradas en la tabla de metadatos según los criterios que necesitas, luego obtienes la publicación relevante de la tabla. Lo peor es que necesitas buscar CADA criterio por separado. Así que una búsqueda por etiqueta, obtienes las publicaciones con el valor X para 'meta1', luego buscas el segundo criterio, digamos, criteriopersonalizado y obtienes los IDs de publicaciones con valorcriteriopersonalizado1 en criteriopersonalizado, Y luego tomas la intersección de estos y vas a obtener los detalles de la publicación desde la tabla de publicaciones con esa intersección.

Como ejemplo: introduce 30,000 productos en WooCommerce, y terminarás con ~1,800,000 filas en wp_postmeta como se explica en la respuesta a continuación:

Metadatos de publicación vs tablas de base de datos separadas

Entonces, no solo esto hará que las búsquedas sean muy muy ineficientes (especialmente cuando haces auto-uniones en wp_postmeta para múltiples criterios), sino que incluso consultar una sola fila entre 1,8 millones de filas genera un impacto en el rendimiento.

Deficiencia del esquema EAV.

Así que con muchas publicaciones, la implementación de la base de datos de WordPress hace que las búsquedas complejas sean muy lentas.

Ejecutar un sitio WordPress con miles de publicaciones es bastante factible, si usas plugins de caché. Puedes llegar aún más lejos. Pero las búsquedas serán un problema.

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

Es lo mismo con los usuarios también - wp_usermeta usa el mismo formato EAV. Así que si tienes muchos usuarios, y tienes muchos plugins que almacenan diversos datos de usuario en wp_usermeta, tendrás el mismo impacto en el rendimiento.

Sin mencionar que con tantos usuarios es probable que ya tengas un alto número de publicaciones - a menos que tu aplicación sea algo que tenga que ver principalmente con usuarios (CRM, etc.), y elijas almacenar tus datos de usuario en wp_usermeta en lugar de wp_postmeta. (Aunque es poco probable).

.........

Hay algunos plugins que intentan solucionar este problema, como Meta Accelerator.

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

Este plugin toma cualquier dato para cualquier tipo de publicación que elijas y los coloca en tablas planas. Esto acelera mucho las búsquedas, y también acelera la consulta de cualquier valor singular.

Pero ese plugin aún está en su infancia.

Alternativamente, puedes instalar ElasticSearch en el servidor y usar el plugin ElasticPress u otro plugin que lo integre con WordPress para acelerar este tipo de búsquedas.

22 feb 2015 02:03:14
0

Creo que puedes manejar incluso más usuarios. Lo único que puede limitarte es tu servidor. Tendrás que escalarlo adecuadamente, especialmente el servidor MySQL. Por ejemplo, wordpress.com maneja incluso más de 40000 usuarios, pero utilizan sistemas extremadamente potentes para garantizar estabilidad, toneladas de balanceadores de carga y etc.

4 abr 2013 14:29:20
1

He descubierto que el cuello de botella para la cantidad de usuarios de WordPress que puedes tener es el tiempo de espera de PHP que entra en juego en la página de administración de usuarios.

Suponiendo que todos tus usuarios tengan al menos 1 rol, tendrán una entrada wp_capabilities en la tabla user_metadata con un array serializado de roles.

La página de administración muestra un recuento de cuántos usuarios hay con cada tipo de rol, por lo que debe cargar cada array serializado de wp_capabilities, deserializarlo y luego mostrar un recuento total.

Cuando tengo 300,000 usuarios, la página de administración de usuarios tarda 44 segundos en generarse.

Esto significa que cada usuario añade 0.00014666666 segundos al tiempo de carga de la página.

Suponiendo que tu tiempo de espera de PHP es de 60 segundos, el límite estaría alrededor de 400,000 usuarios.

Sin embargo, estoy ejecutando un servidor bastante antiguo y lento. Un hardware más rápido mejoraría mucho las cosas.

30 ago 2018 16:26:13
Comentarios

No creo que el impacto sea lineal, pero estoy de acuerdo con la esencia: no se trata tanto del número sino de para qué usas realmente la información y dónde/cuándo la accedes

Mark Kaplun Mark Kaplun
30 ago 2018 16:33:13
2

La pregunta debería ser cuántos usuarios puede manejar el stack PHP-MySQL en lugar de WordPress, ya que WP está desarrollado sobre esas dos tecnologías principales.

Dicho esto, si puedes configurar el servidor con técnicas avanzadas, alojar WordPress en un buen servidor administrado, optimizar la carga y consultas de la base de datos, entonces WP puede manejar tantos miembros como desees.

Si instalas WordPress en un hosting compartido, estás limitando su capacidad. Por otro lado, si puedes administrar tú mismo WordPress en un servidor en la nube o dedicado, entonces deberías obtener el resultado deseado.

WordPress es capaz de manejar consultas complejas a bases de datos. Puedes revisar esto: https://codex.wordpress.org/Installing_WordPress

Además, usar WordPress como un framework avanzado para desarrollo de aplicaciones te permite hacer que tu instalación maneje cargas grandes/complejas de bases de datos.

También puedes revisar esta serie: http://code.tutsplus.com/articles/using-wordpress-for-web-application-development-wp_user_query--wp-35015

Espero que esto ayude. Gracias.

12 abr 2014 21:14:31
Comentarios

Para que conste, la parte de PHP en la pila no será tu problema (Facebook está construido con un PHP modificado), pero MySQL bien podría ser un factor limitante.

Dan Dan
15 abr 2014 14:13:01

El uso de php/mysql por sí solo tiene poco que ver con cuántos usuarios puede manejar una aplicación. Esto tiene todo que ver con el diseño de la base de datos y la aplicación. He usado php y mysql para consultar mil millones de filas y funcionó bien.

111 111
20 jul 2021 07:40:35