Hemos desarrollado algún proyecto de magento con un gran registro de inventario y siempre enfrentamos el problema de indexación, hemos intentado todo lo que se encuentra en Internet para resolver el problema de indexación diario, como truncar las tablas planas y volver a indexar usando CLI, configurando el cron para indexación, pero este es nuestro dolor de cabeza diario con el problema de la indexación.
Estamos buscando una solución permanente para este problema mientras trabajamos en proyectos, hay diferentes escenarios, como actualizar los productos a diario o importar los productos desde algún otro feed diariamente.
Cualquier persona que tenga algunas mejores prácticas con esto o alguna solución alternativa, compártalas que serán muy apreciadas.
Respuestas:
Es importante entender qué índices son lentos y por qué
La complejidad del catálogo y, en última instancia, la arquitectura de la tienda determinarán cuánto tiempo llevará una reindexación, combinada con la infraestructura subyacente.
Si tiene 50,000 productos y 10 visitas a la tienda, puede garantizar que los pocos millones de filas
catalog_url_rewrite
tardarán en procesarse.Si tienes 100 productos, sino 5.000 atributos, se puede garantizar la
catalog_attributes
ocatalog_product_flat
mesa tomará una edad para reconstruir, o caer plana en su caraSi tiene 1,000 productos, pero 500 atributos de búsqueda,
catalog_fulltext_search
nuevamente tomará una edad para completarLa solución a todos y cada uno de los problemas que enfrenta no es 1 talla para todos, se trata de diseñar su tienda correctamente; tener la infraestructura adecuada para soportarlo y usar una frecuencia / estrategia de reindexación que respalde la actualidad y el rendimiento del contenido.
También está el caso de evaluar si incluso se requieren ciertos índices. El uso de producto / categoría plana no siempre hace que todas las tiendas sean más rápidas; lo hemos visto hacer que las tiendas sean mucho más lentas. Por lo tanto, es posible que después de probar el rendimiento antes / después, ni siquiera sean una consideración.
fuente
tl; dr
No hay solución de bala de plata. Sugiero algunas soluciones alternativas,
Sonassi_Fastsearchindex
pero eso es específicamente para la búsqueda en el catálogo.¿Quizás deshabilitar las actualizaciones de índice en guardar (la programación para ejecutarse durante la noche) proporcionará algún alivio? Combinado con la adición de más almacenamiento en caché (memcached, Redis, APC) y un caché de página completa como Varnish (si está ejecutando CE) puede ayudarlo a comenzar. Si planeas usar Varnish, mira en
Nexcess_Turpentine
github para un inicio rápido.Más información
Los problemas de indexación, específicamente catalog_url_rewrites, son bien conocidos y documentados en la comunidad. Magento los ha manejado en la versión Enterprise porque estos son los clientes más afectados. Muchos clientes de EE tienen más de 10k productos y múltiples vistas de tiendas, sitios web, etc.
Sin embargo, si tiene un catálogo grande y una gran cantidad de atributos, puede encontrarse en la posición de que la indexación tomará un largo período de tiempo, específicamente catalog_url_rewrite, product_flat, en ese caso mi sugerencia es no arreglar el tiempo de ejecución del índice longitud, pero en lugar de descargar algo de procesamiento para permitir que la caja pase los ciclos de la CPU indexando en lugar de servir contenido .
Las preguntas que debes hacerte:
No existe una solución de plata para este problema en particular: como proveedor de soluciones, debe ayudar a su cliente a tomar la decisión que mejorará mejor las ventas y el negocio mientras mantiene bajos los costos generales.
Alternativas
Descargue la búsqueda de catálogo y la navegación en capas a Solr.
Escala horizontalmente. Agregue más servidores Apache / nginx. Más servidores = más rendimiento concurrente. Esto no es 1: 1. Nexcess tiene un excelente documento técnico sobre rendimiento y configuración de Apache aquí: http://www.nexcess.net/magento-best-practices-whitepaper
Y, si opta por ir con Varnish, recuerde:
fuente
En la mayoría de las tiendas web de Magento pesadas, la mayoría de las veces ha sido muy difícil hacer que funcione la gestión de índices de backend de Magento. He tenido este problema a menudo. Ejecutar el script de shell todo el tiempo por el desarrollador suele ser agitado. Por lo general, soluciono este problema permanentemente de esta manera.
Creo una nueva copia de shell / indexer.php> shell / myindexer.php
Personaliza shell / myindexer.php alrededor de la línea 154
A
y, agregue esta verificación alrededor de la línea 166
antes de
Y luego agrego el nuevo script de shell a cpanel cron para que se ejecute cada 5 minutos
Como el script de shell anterior se ejecuta cada 5 minutos y reindexa solo los procesos que requieren reindexar, reduce el riesgo de una gran carga en la CPU del servidor, así como todo el proceso de reindexación es muy rápido. Si ningún proceso requiere reindexar, simplemente no ejecutará el proceso de reindexación. Además, recuerde poner el modo de reindexación en "Actualizar al guardar" en la página de gestión de índices. Si no lo sabe, puede obtener esta opción en Acciones> Cambiar modo índice al lado del botón Enviar.
fuente
Sería más fácil decir si podría dar más datos (tamaño del inventario, visitantes, máquina), pero aquí hay una posibilidad:
Sonassi_Fastsearchindex
extensión para el índice de búsqueda en el catálogo. Aunque solo indexa el título, la descripción y el sku (creo que lo he notado), funciona muy bien y reduce el tiempo del indexador de búsqueda de catálogo.Esto se ejecuta en Magento CE 1.7.0.2; sigue siendo un dolor, sin embargo;)
fuente
usando Dnd_Patchindexurl pude reducir el tiempo de reindex de catalog_url_rewrite a casi el 70%
¡Creo que es una buena solución excluir productos deshabilitados o productos no visibles para que su URL sea creada para nada!
Después:
¡Lo instalé en 1.9.1.1 y funciona muy bien!
También se puede instalar a través de Connect http://www.magentocommerce.com/magento-connect/catalog/product/view/id/15074/s/dn-d-patch-index-url-1364/category/12863/
fuente
Actualice a EE 1.13. Los indexadores se mejoraron mucho en esta versión.
fuente