Utilizziamo i server MariaDB che è un'ottima evoluzione dei server MySQL e non cambia nulla in termini di compatibilità dei database da MySQL a MariaDB. Con MariaDB, si consiglia di convertire le tabelle MyISAM nel nuovo formato Aria, poiché ciò offre una migliore resistenza agli urti e un po' più di velocità. La conversione in innoDB è la seconda opzione.
La conversione delle tabelle è un compito primario dell'ottimizzazione del database, la vera ottimizzazione è avere indici nel database e questo non è facilmente accessibile negli CMS esistenti, ma accessibile per i moduli di terze parti che hai acquistato (suggerisci all'editore di ottimizzare il proprio modulo). Per i siti personalizzati, solo uno specialista di database o un webmaster molto esperto può svolgere questo lavoro tecnicamente difficile... Inoltre, fare riferimento a tutorial online specializzati.
Prima della conversione, prova le funzioni di phpmyadmin in questo ordine selezionando tutte le tabelle in un database: controlla la tabella, ripara la tabella, ottimizza la tabella...
La prima idea è identificare le tabelle di grandi dimensioni in un database, in MB, ma anche quelle contenenti molte righe: ordina le tue tabelle da phpmyadmin del tuo cpanel per identificarle.
Se la sua dimensione è giustificata, cioè non per log/cache o simili, nel qual caso devono essere svuotati regolarmente.
Se nessuno dei due casi riguarda il tuo database e il problema persiste, probabilmente il problema deriva dalla progettazione del database o da alcune tabelle collegate ai plugin, oppure anche dal fatto che il tuo codice PHP non va bene...
Come convertire le tabelle MyISAM in Aria o InnoDB?
Per convertire /ex tutto il MyISAM esistente in InnoDB. Da phpmyadmin, fai clic con il pulsante sinistro del mouse sul tuo database, quindi fai clic su SQL in alto... Incollalo qui sotto, quindi "Esegui"
SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;')
DA INFORMAZIONI_SCHEMA.TABELLE
DOVE MOTORE='MyISAM'
Il risultato viene visualizzato di default con i testi brevi, dovete quindi andare sopra in '+ Opzioni', cliccare su 'Testi completi', ed ottenere questo in questo esempio:
ALTER TABLE ps_carrier MOTORE=InnoDB;
ALTER TABLE ps_expressmailing ENGINE=InnoDB;
ALTER TABLE ps_expressmailing_email ENGINE=InnoDB;
ALTER TABLE ps_expressmailing_email_accountdates MOTORE=InnoDB;
ALTER TABLE ps_expressmailing_email_birthdays MOTORE=InnoDB;
ALTER TABLE ps_expressmailing_email_buyingdates MOTORE=InnoDB;
ALTER TABLE ps_expressmailing_email_categories MOTORE=InnoDB;
ALTER TABLE ps_expressmailing_email_civilities ENGINE=InnoDB;
Ora crea una copia di tutto quanto sopra e incollala in SQL, quindi Esegui e la conversione è completata!
Consigliato e prioritario:
Se ti trovi in MariaDB come YOORshop, ti suggeriamo di convertire le tabelle MyISAM di un database in ARIA (questo formato è anti-crash e più efficiente):
SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=ARIA;')
DA INFORMAZIONI_SCHEMA.TABELLE
DOVE MOTORE='MyISAM'
Per convertire le tabelle InnoDB da un database ad ARIA:
SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=ARIA;')
DA INFORMAZIONI_SCHEMA.TABELLE
DOVE MOTORE='InnoDB'
Per convertire le tabelle ARIA da un database a InnoDB:
SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;')
DA INFORMAZIONI_SCHEMA.TABELLE
DOVE MOTORE='ARIA'
Per Prestashop /ex, se il tuo database è grande senza motivo, ad esempio un catalogo importante, puoi eseguire lo 'svuotamento', queste tabelle prestashop possono essere svuotate senza alcun problema, vedere il pulsante 'svuota':
ps_connections
ps_connections_page
ps_connections_source
ps_guest (questo è collegato al modulo statistiche e verrà compilato nuovamente se non disattivi il modulo)
ps_pagenotfound
ps_pagina_visualizzata
ps_referrer_cache
ps_intervallo_date
ps_search_index + ps_search_word + ps_statssearch deve essere eseguito contemporaneamente, quindi ricostruire l'indice di ricerca in prestashop
Altre tabelle collegate o meno a moduli e la memorizzazione della cache senza mai svuotarla possono essere svuotate, consultare l'editor.
NB:
Per migrare su un altro server mysql, è necessario riconvertire la tabella aria in innodb o myslam
Esportazione, opzioni:
deseleziona AUTO_INCREMENT
Modifica il database con notepad+ e rimuovi ovunque TRANSACTIONAL=1
Importa il database, non dovrebbero esserci errori... (il formato MYSQL 40 può aiutare)