Go Back

Optimización de bases de datos

Usamos servidores MariaDB que es una muy buena evolución de los servidores MySQL, y no cambia nada en términos de compatibilidad de bases de datos MySQL hacia MariaDB. con MariaDB, se sugiere convertir las tablas MyISAM al nuevo formato Aria, ya que esto brinda una mejor resistencia a los choques y un poco más de velocidad. La conversión a innoDB es la segunda opción.

La conversión de tablas es una tarea muy importante de la optimización de una base de datos, la optimización real consiste en tener índices en su base de datos, y es difícil acceder a ellos en el CMS existente, pero es accesible para los módulos de terceros que haya comprado (sugiera al editor que optimice su módulo). Para sitios personalizados, sólo un especialista en bases de datos o un webmaster con mucha experiencia puede realizar este trabajo técnicamente difícil... Consulte también los tutoriales especializados en línea.

Antes de convertir, pruebe las funciones de phpMyAdmin en este orden seleccionando todas las tablas en una base de datos: verificar la tabla, reparar la tabla, optimizar la tabla...

La primera idea es identificar tablas grandes en una base de datos, en tamaño MB, pero también aquellas que contienen muchas filas: ordena tus tablas desde phpMyAdmin de tu cPanel para identificarlas.

Si su tamaño está justificado, es decir no para logs/cache o similares, en cuyo caso se deben vaciar periódicamente.

Si ninguno de los casos afecta a su base de datos y el problema persiste, entonces probablemente el problema se deba al diseño de la base de datos o a algunas tablas vinculadas a complementos, o incluso a que su código PHP tampoco es bueno...

 

¿Cómo convertir tablas MyISAM a Aria o InnoDB?

Para convertir /ex todos los MyISAM existentes a InnoDB. Desde phpMyAdmin, haga clic izquierdo en su base de datos, luego haga clic en SQL en la parte superior... Pegue esto a continuación, luego 'Ejecutar'

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;') 

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE='MyISAM'

 

El resultado se muestra por defecto con textos cortos, por lo tanto debes ir arriba en '+ Opciones', hacer clic en 'Textos completos', y obtener esto en este ejemplo:

ALTER TABLE ps_carrier ENGINE=InnoDB;

ALTER TABLE ps_expressmailing ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_accountdates ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_birthdays ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_buyingdates ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_categories ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_civilities ENGINE=InnoDB;

¡Ahora haga una copia del conjunto anterior y péguelo en SQL, luego Ejecútelo y la conversión estará lista!

 

Recomendado y prioritario:

Si estas bajo MariaDB Al igual que en YOORshop, sugerimos convertir tablas MyISAM de una base de datos a ARIA (este formato es anti-bloqueo y más eficiente):

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=ARIA;') 

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE='MyISAM'

 

Para convertir tablas InnoDB de una base de datos a ARIA:

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=ARIA;') 

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE='InnoDB'

 

Para convertir tablas ARIA de una base de datos a InnoDB:

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;') 

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE='ARIA'

 

Para PrestaShop /ex, si su base de datos es grande sin ningún motivo como un catálogo importante, entonces puede hacer el 'vaciado', estas tablas de PrestaShop se pueden vaciar sin ningún problema, vea el botón 'vaciar':

ps_connections

ps_connections_page

ps_connections_source

ps_guest (está vinculado al módulo de estadísticas y se completará nuevamente si no desactiva el módulo)

ps_pagenotfound

ps_page_viewed

ps_referrer_cache

ps_date_range

ps_search_index + ps_search_word + ps_statssearch se debe realizar al mismo tiempo, luego reconstruir el índice de búsqueda en PrestaShop

Otras tablas vinculadas o no a módulos, y el almacenamiento de caché sin vaciarlo se puede vaciar, consulte al editor. 

 

Nota:

Para migrar a otro servidor MySQL, necesita convertir la tabla aria nuevamente a innodb o myslam

 

Exportar, opciones:

desmarque AUTO_INCREMENT

Edite la base de datos con notepad+ y elimine en todas partes TRANSACTIONAL=1

Importe la base de datos, no debería haber errores... (el formato MySQL 40 puede ayudar)