it-swarm-es.com

Escalado a WP sitio de comercio electrónico

Relacionado con esta pregunta .

Cualquier recomendación sobre herramientas, complementos para optimizar un gran sitio de comercio electrónico en WP. Actualmente golpeando 1000 artículos y 5000 artículos más próximos. Parece que las optimizaciones serían diferentes a las de un blog estándar que atiende a miles de usuarios. El número de tiendas que se están desarrollando en WP está aumentando y podría ser útil reunir un paquete de optimizaciones.

MM/RC

5
RealityCramp

He desarrollado un sitio de comercio electrónico de productos de 55k utilizando Wordpress con el complemento Shopp y puedo compartir lo que he hecho con MySQL para obtener un mejor rendimiento, YMMV y algunos (o todos) de estos no se aplican a su situación.

Determine cuánto necesita para aumentar los búferes/cachés observando la salida de un comando sql "show status". Hay herramientas que, como muchas de estas salidas, pueden ser útiles. A menudo, solo uso phpmyadmin para tener una idea. http://blog.mysqltuner.com/ también es un recurso útil y una utilidad.

Asegúrese de que su caché de consultas esté activado y de que sea lo suficientemente grande como para tener un número de punes de memoria muy bajo. Asegúrese de que el número de lecturas clave no sea demasiado alto (esto es un valor relativo), el aumento de key_buffer_size puede ayudar con eso. Asegúrese de que el número de tablas temporales que se crean sea bajo, reduzca ese número aumentando tmp_table_size.

Active el registro de consultas lentas y las consultas lentas, vuelva a ejecutarlas manualmente con explicaciones, agregue índices, cambie los tipos de columna, etc., según sea necesario. Para una consulta, nos estábamos volviendo locos con explicaciones (como al comparar muchas, muchas más filas de las que "debería" haber sido), actualizar a una versión más nueva de MySQL hizo que esa misma consulta estuviera mucho mejor optimizada (y mucho más rápida) por MySQL sí mismo.

Si está utilizando la indexación de texto completo, no creo que las tablas de InnoDB sean una opción, simplemente no actualice los productos durante su tiempo ocupado. Si su paquete de comercio electrónico lo admite, puede minimizar la interrupción del cliente (rendimiento o de otra manera) haciendo cambios en su servidor de pruebas y luego moviéndose solo sobre las tablas del producto con un volcado desde el escenario y cargando en producción - esto Sin embargo, no funciona sin un trabajo adicional para el resto de su instalación de Wordpress.

Si el diseño de su sitio y UX pueden admitirlo, guiar a los usuarios en un modo de "navegación" frente a un modo de "búsqueda" (por ejemplo: hacer clic en un sitio frente a escribir búsquedas en el cuadro de búsqueda) puede ayudarlo a aprovechar una base de datos muy sencilla. Nivel y nivel de Wordpress caching.

Cargue previamente sus cachés: el almacenamiento en caché fácil, como los cachés de consulta y el caché a nivel de Wordpress, también se puede precargar arrastrando su sitio con wget. También puede precargar el caché para búsquedas utilizando el comportamiento de búsqueda del usuario (a través de sus registros) y volviendo a obtener esas solicitudes cuando necesite llenar los cachés.

11
bsr

Tenía curiosidad por mi propio comentario y he estado leyendo un poco, aquí es donde estoy.

En primer lugar, le daría a W3 Total Cache una oportunidad. Además, instale la extensión APC PHP en su servidor y configure W3 Total Cache para que la use. Utilizará APC para almacenar en caché los objetos de la base de datos, PHP, incluso para ayudar a minimizar su CSS y JS. Podría proporcionar suficiente. Especialmente si ya incorporas algo de caché de MySQL. W3 Total Cache también puede funcionar con Memcache como backend de caché.

Para la base de datos, las consultas en caché son muy útiles. Encontré este enlace y él explica cómo hizo algunas cosas para su blog MU. Citar:

El caché de consultas es una característica pequeña e ingeniosa en MySQL, donde almacena, en una memoria dedicada, dentro de la memoria principal, los resultados de una consulta para una tabla que no ha cambiado recientemente.

Es decir, asumiendo que se recibe una solicitud para recuperar una fila específica en una tabla, y esa tabla no se ha modificado recientemente de ninguna manera, y la memoria caché no se ha llenado y requiere purga/limpieza. La consulta/los datos se pueden satisfacer a partir de esto cache. Por supuesto, el principal beneficio aquí es el de satisfacer la solicitud: la base de datos no necesita ir al disco (que generalmente es la parte más lenta del sistema) y puede satisfacerse de inmediato.

Así que esto es muy bueno, y ayudará mucho ya que los productos en sí mismos no cambiarán mucho. Otra cosa que menciona el artículo es asegurarse de tener mucha memoria para mantener la base de datos en Ram, lo que ayudará a acelerar las consultas de manera espectacular.

También habla sobre los tipos de tablas y sobre el uso de MyISAM sobre InnoDB para las tablas de solo lectura, mientras que este razonamiento está un poco orientado a MU, podría ser útil.

En lo que respecta a la configuración de los índices. Si tiene muchos de ellos, pueden ralentizar las inserciones y ocupar más espacio en el disco. Pero como no creo que se agregue una gran cantidad de productos de forma regular, creo que esto es aceptable. Y con el espacio en disco siendo barato ...

1
Ryan Gibbons