Lo tengo resuelto. Parece que hay un "nuevo" enfoque en las consultas SQL descubiertas por el equipo de OC y debe llamarse "DDoS hasta la muerte".
La base de productos ahora ha crecido a 37k productos en 129 categorías (desde 18k durante la noche, lol ... no debería haber escrito ese scripts automatizados de importación y dárselo a un lamer ...) y los tiempos de carga han crecido de 6-12 segundos a 20-25 segundos, golpeando el servidor SQL duro:
[cita] Вопросов начиная с запуска: 514,064,911 (ques desde el arranque) ø в час: 1.301.788 (promedio ques por hora) ø в минуту: 21.696 (ques medio para los minutos) ø в секунду: 362 (ques medio para los segundos) [/ quote]
Esto no es normal, puesto que hay 2 usuarios en el sistema - la secuencia de comandos automatizada (limitada - 30 preguntas por segundo, luego dormir (1)) y yo (362-30 = 332 consultas por segundo? por un humano? WTF desarrolladores?). De acuerdo con esta OC de estadísticas, de esta manera se necesitará una granja de servidores seria para atender a más de 500 usuarios al mismo tiempo. No va a pasar. No en esta vida
Mantengo varios sitios web y he reescrito casi todos. Mi sitio más visitado (200k visitas por día) está generando "solo" 2.5Mil ques por día. Y es pesado (contenido), créanme. Si OC se cargara por igual (200k vistas) esto significaría que habría 100-120Mil ques por día.
TAMBIÉN las consultas no son tan acertadas, dando al servidor tiempos difíciles con ORDER BY (como sospechaba) y SELECT DISTINCT (¡¡¡dolor !!!).
TAMBIÉN hay numerosas opciones establecidas para cada consulta, sin importar si el usuario las ha configurado o no (ordenación, orden, etc.). Esto hace preguntas como 4-5 veces más largas de lo esperado, incluso si el usuario no quiere ningún orden de clasificación (ASC, DESC, etc.)
TAMBIÉN hay preguntas escritas de una manera tan mala, que me divierte. ¿Cómo podría extraer números totales para cualquier cosa utilizando 5 phps y 3 consultas, siempre que pueda hacer una línea simple 1 "SELECT COUNT (*) FROM ..."? Al equipo de OC no parece importarle los tiempos de ejecución ni las cargas del servidor.
Me gustaría pedir disculpas si alguien se ofende por lo que he escrito, pero en mi caso estoy en lo cierto: todo el enfoque es incorrecto para lograr los objetivos (ejecución rápida en 37k productos/129 gatos). OC podría ser bueno para alguien con 2 categorías y 50 productos (¿lol?). No sé. Y probablemente no me entere.
Como INFO, el almacenamiento en caché no es una solución. El almacenamiento en el lado del servidor es bastante bonito. Cualquier cosa más allá de esto significa que tienes serios problemas de codificación. Entonces no ... Voy a repetir NO COMPRE módulos de caché. Están ocultando los problemas, no los están resolviendo. Si un módulo de almacenamiento en caché puede ocultar el problema en productos de 40k, no podrá hacerlo en productos de 140k. Necesitará un módulo de almacenamiento en caché para el módulo de almacenamiento en caché, lol.
Ahora, a la solución. Camino fácil. Modificaremos solo los problemas principales. No explicaré las modificaciones que hice en mi versión, porque están en muchos archivos y son fundamentales si no entiendes lo que estás haciendo (es posible que pierdas opciones de OC que te gustaría conservar, mientras que a mí no me importa sobre opciones siempre que el sitio se cargue durante medio minuto). Entonces, SOLAMENTE modificaciones menores.
Wil dice - explicado para la versión 1.5.5.1 stock, stock theme. Medios: sin modificaciones. Después de la modificación, perderá el bloque del lado izquierdo con categorías, pero su sitio cargará REALMENTE RÁPIDO (37k products/129 cats -> 0.137 segundos avg en 5 cargas sumas, la distancia del servidor es ~ 200mi)
0) RESPALDA su sitio. Vamos a modificar los archivos. Podrías hacer un desastre horrible. Y llorar después.
1) Obtener/catalogar/controlador/producto/categoría.php línea Encontrar: 184
Debe contener: $product_total = $this->model_catalog_product->getTotalProducts($data);
Reemplazar con: //$product_total = $this->model_catalog_product->getTotalProducts($data);
Descripción: Comentando cuentan categorías, ya que toma bastante DAMD mucho que contar productos en 129 categorías (129 consultas WTF.? ?)
2) Obtener /catalog/controller/product/category.php línea Encontrar: 187
debe contener: 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : '')
,
Reemplazar con: 'name' => $result['name'],
Descripción: La limpieza - no hay recuento que se muestra en categorías, como `t contar con ellos nunca más.
3) Obtener /catalog/controller/product/category.php línea Encontrar: 388 debe contener: 'common/column_left',
Reemplazar con: // 'common/column_left',
Descripción: generación Skippng de la columna de la izquierda en la categoría ver.
4) Obtener /catalog/controller/product/product.php línea Encontrar: 463 debe contener: 'common/column_left',
Reemplazar con: // 'common/column_left',
Descripción: generación Skippng de la columna de la izquierda a la vista de producto .
5) Obtener /store/catalog/view/theme/default/template/product/product.tpl línea Encontrar: 1
debe contener: <?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
Reemplazar con: <?php echo $header; ?><?php echo $column_right; ?>
Descripción: eliminando la columna izquierda del tema - vista de productos.
6) Obtener /store/catalog/view/theme/default/template/product/category.tpl línea Encontrar: 1
debe contener: <?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
Reemplazar con: <?php echo $header; ?><?php echo $column_right; ?>
Descripción: Eliminar columna izquierda del tema - vista de catálogo.
HECHO. Pon a prueba tu velocidad de carga. Debería ser bastante sorprendente, si tu problema era como el mío.
NOTA: Tenga en cuenta que no estoy familiarizado con ninguna versión de OC y nunca la he usado antes. Como hemos resuelto parte del problema, no está completamente resuelto. Esta es una solución temporal. Eliminar las piezas que provocan una carga lenta es una solución hasta que las vuelva a escribir, esta vez con suerte. Estoy dispuesto a reescribirlo, si alguien quiere superar a mi jefe. Puedo tomar vacaciones y trabajar para usted:) Mi pago actualmente es de 4700 € por semana.Comprender y reescribir esta columna de la izquierda de la manera correcta no debería tomar más de 1-2 días hábiles.
PP. Publicaré esto en varios lugares, porque no creo que al equipo de desarrollo OC le guste lo que ha leído, no importa que no quiera ofenderlos, solo para señalar los errores críticos que han cometido (25.31 tiempo de carga promedio) para cada página en pruebas, ningún cliente esperará más de 3-4 segundos antes de irse a otro sitio. ¿Dafuq?). Y al no dejarme publicar esta información, la gente no sabe cómo salir del problema e ir a comprar un "módulo de almacenamiento en caché" que en realidad está copiando los archivos del disco duro como algo salvaje. Desperdicio de dinero, desperdicio de recursos de disco duro, desperdicio de electricidad ... y todo esto: para crear una ilusión todo funciona bien, mientras que no funciona.
Sé que ya hay algunas respuestas, pero algo que sí ayuda es tener un servidor dedicado y un servidor de base de datos dedicado. – TheBlackBenzKid