WooCommerce con miles de productos - el sitio es muy lento - ¿optimizar consultas de base de datos?
Hasta ahora tengo alrededor de 8,000 productos en mi WooCommerce y la página de productos en el front-end tarda varios segundos en cargar, incluso después del almacenamiento en caché.
Mi proveedor de VPS dice que debería tener múltiples bases de datos.
¿Es ese el método correcto y si es así, cómo es posible?
Cualquier sugerencia para acelerar mis consultas a la base de datos o simplemente acelerar el front-end sería excelente.
Here are some suggested solutions I could provide: 1. Utilizar un plugin de caché avanzado como WP Rocket o W3 Total Cache 2. Implementar índices en las tablas de productos de la base de datos 3. Optimizar las imágenes y utilizar CDN 4. Ajustar la paginación de productos 5. Revisar y optimizar consultas SQL personalizadas 6. Utilizar objetos en caché transient para datos frecuentes 7. Implementar lazy loading para imágenes 8. Considerar sharding de base de datos solo si es realmente necesario ¿Te gustaría que profundice en alguna de estas soluciones específicas?
Esto es realmente una cuestión del servidor y no particularmente de WordPress.
Estás encontrando un cuello de botella en la velocidad del servidor MySQL en 1and1. Lamentablemente, son conocidos por ser un hosting compartido lento, y por esa razón dudo que sus VPS sean mejores.
El caching y una CDN solo te ayudarán hasta cierto punto. Necesitas más potencia en forma de un servidor MySQL mejor y más rápido, y si ya estás pagando por un VPS, cámbiate a un proveedor de VPS mejor, como Media Temple.
Una vez allí, con acceso root, podrás utilizar una herramienta como http://mysqltuner.com para registrar y analizar el rendimiento del servidor MySQL y ajustar la memoria del servidor y los parámetros de caché de consultas de la base de datos en el archivo de configuración my.cnf. También podrás ajustar Apache - en httpd.conf - para manejar cargas altas.
No tiene mucho sentido intentar optimizar las consultas de la base de datos realizadas por WooCommerce o WordPress; cualquier cambio realizado deberá volver a hacerse después de las actualizaciones.

Estoy probando WP Super Cache, pero no ayudó mucho. Confío en el servidor, pero 1and1 afirma que es el código del sitio, ¿podrías echarle un vistazo rápidamente y confirmar? http://s15430161.onlinehome-server.com/shop/product-category/dark-horse/ solo haz clic en cualquiera de las miniaturas de cómics.
Ah, y actualmente hay alrededor de 13,000 productos en la base de datos.

@ el comentario anterior, he almacenado en caché algunos, así que si se carga al instante, prueba con uno diferente.

Olvídate de intentar almacenar en caché. Si tienes acceso root en ese VPS, revisa tu archivo my.cnf y ejecuta mysqltuner.pl para optimizar MySQL.

No es un cuello de botella de MySQL, sino un código terrible dentro de WooCommerce y WordPress que analiza cada producto en tu base de datos usando PHP solo para contar productos en cada categoría. En mi servidor, el MySQL para 100,000 productos devuelve los resultados en 0.3 segundos, pero usando PHP-FPM básico la página tarda 185 segundos en cargar (¡en un VPS de 8 núcleos!). Cuando uso HHVM en su lugar, tarda 10 segundos.

Tengo dos soluciones que te recomendaría para resolver tu problema. Primero, utiliza elasticsearch.com para poblar todos los índices de productos. Al mismo tiempo, mejorarás dramáticamente las capacidades de búsqueda de tu sitio web (si se integra correctamente). Asegúrate de colocar la solución de elasticsearch en un servidor diferente.
Mi opinión es que tu sistema de caché no está configurado correctamente o tu servidor está sobrecargado. Una solución que podría ser la más económica (opción #2) sería utilizar los servidores de caché gratuitos de cloudflare.com. Esto normalmente solucionará tu problema de la manera más rentable si no quieres lidiar con optimizaciones del servidor.

El caché con Varnish es la mejor solución, sin embargo debes evitar almacenar en caché el fragmento del carrito en el encabezado y las páginas de carrito/checkout. Considero que WooCommerce debería configurarse con Varnish Edge Side Includes. Para excluir el checkout sigue estas instrucciones:
http://docs.woothemes.com/document/configuring-caching-plugins/#section-3
