Optimización de la base de datos de Magento [Guía completa]

La optimización de la base de datos de Magento es el paso que debe comenzar en el camino hacia la mejora del rendimiento de su sitio web. Al trabajar con esta compleja plataforma de comercio electrónico, sabe que tiene un sólido sistema de registro de eventos que almacena la información recopilada en las tablas de la base de datos de la versión del módulo Magento 2.

Ahora imagine que tiene una gran tienda y todos los registros no se han limpiado durante mucho tiempo. ¿Esto influirá en el rendimiento de su sitio web? Un sí definitivo, pensamos.

En esta publicación, cubriremos cómo optimizar su base de datos Magento de 3 formas simples.

 Realice una copia de seguridad de su base de datos antes de iniciar cualquier proceso de optimización .

Hay mucho que decir sobre la optimización del sitio web de Magento. Pero tenemos una respuesta para todas las sugerencias de Google Page Speed ​​Insights: M2 Google Page Speed ​​Optimizer : minimiza/combina JS, CSS, HTML implementa soporte de carga diferida webP acelera la carga en dispositivos móviles y de escritorio. Para obtener más información sobre la optimización de la base de datos de Magento 2, consulte esta guía .

Resumen del artículo [ ocultar ]

  • Verificación rápida de hechos
  • #1 Limpieza de registros de la base de datos de Magento: use la configuración predeterminada en el panel de administración
  • #2 Limpieza de los registros de la base de datos de Magento: use MySQL Client o CLI
    • A través del cliente MySQL
  • #3 Limpieza de los registros de la base de datos de Magento: use shell/log.php
  • Deshabilitar el registro de Magento
  • Resumir

Verificación rápida de hechos

Magento 2 no registra datos como Magento 1 en gran parte debido al hecho de que cada vez más comerciantes usan Google Analytics para recopilar y procesar estadísticas, por lo que al ejecutar su tienda en él, lea cómo agregar GA a su Magento 2  y esta guía de optimización en su lugar.

Lo primero es lo primero, entonces, hay dos tipos de registro en Magento. El primero son los archivos de registro del sistema y de excepciones . Están deshabilitados por defecto. Por lo tanto, si desea tener un informe detallado sobre cualquier evento del sistema, deberá habilitarlos. Para esto, vaya a Sistema>Configuración>Avanzado>Desarrollador>Configuración de registro y elija en la configuración desplegable Habilitado , haga clic en Guardar configuración :

Ahora los registros se guardarán en el directorio ‘var/log’ , no olvide revisarlos y limpiarlos periódicamente, así como los registros de  ‘var/report’ .

El segundo tipo es del que hablamos hoy guarda registros sobre cualquier evento relacionado con las actividades del cliente. Los datos se guardan en las tablas de la base de datos de Magento CE que enumeramos a continuación:

log_customer
log_visitor
log_visitor_info
log_visitor_online
log_summary
log_summary_type
log_url
log_url_info
log_quote
Index_event
report_event
report_viewed_product_index
report_compared_product_index
catalog_compare_item
dataflow_batch_export
dataflow_batch_import

Como habrás adivinado, las tablas de usuarios de Magento contienen mucha información útil, como la fecha y hora de inicio/cierre de sesión de un cliente, las URL que visitaron como parte de una sesión, los productos que compararon, las cotizaciones que hicieron, sus acciones en tienda, en general, etc.

Magento EE tiene dos tablas más, a saber , enterprise_logging_event yenterprise_logging_event_changes .

Todos estos datos se acumulan y obstaculizan su Magento si no se limpian a tiempo. Por lo tanto, cuanto más grande es la tienda, más información innecesaria sobrecarga su sitio web. Entonces, aquí hay tres formas de resolver esto.

#1 Limpieza de registros de la base de datos de Magento: use la configuración predeterminada en el panel de administración

Paso 1 : Inicie sesión en su panel de administración.

Paso 2 : Vaya a Sistema>Configuración .

Paso 3 : Vaya a la barra lateral izquierda, busque el menú Avanzado y haga clic en Sistema .

Paso 4 : elija la pestaña Registro en el menú y establezca Habilitar registro en y configure la frecuencia de limpieza automática de registros que desee:

Paso 5 : Haga clic en Guardar configuración .

#2 Limpieza de los registros de la base de datos de Magento: use MySQL Client o CLI

A través del cliente MySQL

Paso 1 : ingrese al panel phpMyAdmin desde su panel de control de alojamiento.

Paso 2 : habilite las casillas de verificación para las siguientes tablas con registros:

log_customer

log_visitor


log_visitor_info


log_visitor_online


log_summary


log_summary_type


log_url


log_url_info


log_quote


Index_event


report_event


report_viewed_product_index


report_compared_product_index


catalog_compare_item


dataflow_batch_export


dataflow_batch_import

+enterprise_logging_event yenterprise_logging_event_changes si usa EE.

Paso 3 : Vaya al menú desplegable de acciones Con seleccionado en la parte inferior de la página y elija Vacío . Luego haga clic en en la página de confirmación que aparece. Por lo tanto, acaba de truncar las tablas seleccionadas.

Paso 4 : Ahora ve a la parte superior de la página y haz clic en la pestaña Estructura . Marque las mismas tablas que acaba de truncar y, en la lista Con seleccionados , haga clic en Optimizar . Eso es todo.

#3 Limpieza de los registros de la base de datos de Magento: use shell/log.php

Puede realizar la limpieza de la base de datos de Magento a través del archivo log.php en Magento /shell . Se puede ejecutar tanto manualmente como a través de un trabajo cron.

Si ejecuta la limpieza manualmente, entonces…

Paso 1 : Vaya al directorio raíz y use el comando: php -f shell/log.php clean

Paso 2 : para especificar la cantidad de días de historial de registro que se guardarán, use la línea ‘–days’ :

div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }

Datos alojados con ♥ por Pastebin.comDescargar RawVer original
  1. $ php f shell / log .php ayuda  
  2.  
  3. Uso : php f log .php — [opciones]
  4.         php f log .php — limpio –días 1
  5.  
  6. limpiar Limpiar registros
  7. días < días >     Guardar registro , días. ( Mínimo 1 día , si está definido , ignorando el valor del sistema )
  8. estado            Mostrar estadísticas por tablas de registro
  9. ayuda              Esta ayuda

Paso 3 : Ver los resultados php -f shell/log.php status . Puede llevar algún tiempo procesar su solicitud, depende de cuánto tiempo hace que lo hizo la última vez.

Tenga en cuenta que no podemos eliminar datos de todas las tablas de registro utilizando este método, ya que elimina los datos elegidos por los visitantes solo por sus ID.

Deshabilitar el registro de Magento

Si (a) no desea disminuir el rendimiento de Magento, (b) no necesita los datos de los clientes recopilados por Magento, (c) no desea verificar los estados de registro de la tabla de modificación de Magento 2 todo el tiempo, puede deshabilitar el registro en la base de datos.

Por cierto, si deja de iniciar sesión desde el panel de administración de Magento, no resolverá el problema por completo. Para detener esto por completo, siga los siguientes pasos.

Paso 1 : Abra el archivo app/etc/local.xml ;

Paso 2 : Pegue el siguiente parche antes de la etiqueta:

div.embedPastebin { text-align:left; padding: 0; color: #000; margin: 0; font-family: monospace; background: #F7F7F7; border: 1px solid ddd; border-radius:3px; } div.embedPastebin { } div.embedPastebin div.embedFooter { background: #F7F7F7; color: #333; font-size: 100%; padding: 6px 12px; border-bottom: 1px solid #ddd; text-transform:uppercase; } div.embedPastebin div.embedFooter a, div.embedPastebin div.embedFooter a:visited { color: #336699; text-decoration:none; } div.embedPastebin div.embedFooter a:hover { color: red; } .noLines ol { list-style-type: none; padding-left: 0.5em; } .embedPastebin{background-color:#F8F8F8;border:1px solid #ddd;font-size:12px;overflow:auto;margin: 0 0 0 0;padding:0 0 0 0;line-height:21px} .embedPastebin div { line-height:21px; font-family:Consolas, Menlo, Monaco, Lucida Console,’Bitstream Vera Sans Mono’,’Courier’,monospace; } ol { margin:0; padding: 0 0 0 55px} ol li { border:0; margin:0;padding:0; } li.ln-xtra .de1, li.ln-xtra .de2 {background:#F8F8CE;} .embedPastebin ol li.li1 { margin: 0; } .embedPastebin ol li.li2 { margin: 0; }

Datos alojados con ♥ por Pastebin.comDescargar RawVer original
  1. < interfaz >
  2.     < eventos >
  3.         < acción_controlador_predespacho >
  4.             < observadores >< registro >< tipo > desactivado </ tipo ></ registro ></ observadores >
  5.         </ controlador_acción_predespacho >
  6.         < control_acción_posterior al envío >
  7.             < observadores >< registro >< tipo > desactivado </ tipo ></ registro ></ observadores >
  8.         </ controlador_acción_despacho >
  9.         < inicio_de_cliente >
  10.             < observadores >< registro >< tipo > desactivado </ tipo ></ registro ></ observadores >
  11.         </ inicio_de_cliente >
  12.         < salida_cliente >
  13.             < observadores >< registro >< tipo > desactivado </ tipo ></ registro ></ observadores >
  14.         </ cliente_cerrar sesión >
  15.         < cotización_ventas_guardar_después >
  16.             < observadores >< registro >< tipo > desactivado </ tipo ></ registro ></ observadores >
  17.         </ sales_quote_save_after >
  18.         < checkout_quote_destroy >
  19.             < observadores >< registro >< tipo > desactivado </ tipo ></ registro ></ observadores >
  20.         </ checkout_quote_destroy >
  21.     </ eventos >
  22. </ interfaz >

Y guarde el archivo local.xml .

Paso 3 : Vaya a Sistema>Configuración>Avanzado>Desactivar salida de módulos y seleccione Desactivar para Mage_Log :

Paso 4 : vacíe su caché de Magento :

Incluso puede recurrir a métodos más radicales y decir, piratear el código central.

ADVERTENCIA : Deshabilitar el registro de Magento no siempre es la salida. Aquí hay un ejemplo simple, nuestra extensión Magento Automatic Related Products utiliza el historial de productos vistos y comparados como una de las principales fuentes para su correcto funcionamiento, aunque también brinda la posibilidad de utilizar otras fuentes. Entonces, habiendo decidido deshabilitar el registro, tenga en cuenta el trabajo de sus extensiones.

Resumir

Recuerde que la limpieza del registro de la base de datos es imprescindible para el buen rendimiento de Magento. Siempre puede migrar de MySQL a cualquier otro motor de base de datos, por ejemplo, puede ser Magento 2 y MariaDB , Amazon Aurora , Magento Percona o cualquier otro. Lo único que debe recordar es que si no ha configurado la eliminación automática de registros, no olvide hacerlo manualmente.

¿Todavía tienes preguntas?

¡Siéntase libre de posarlos a continuación!

PD Un agradecimiento especial a Dmitry Smolik y Alexander Seravin por la experiencia que nos ayudó a dar vida a esta publicación.