MariaDB : convertir vos tables MyISAM en Aria

MariaDB : convertir vos tables MyISAM en AriaJ’ai cru comprendre  que l’un des intérêts majeurs à passer de la base de données  MySQL à MariaDB était le choix du moteur Aria (inexistant sur MySQL) préférable à MyISAM. L’éditeur annonce un gain de performance de 50% à l’avantage du moteur Aria par rapport à MyISAM !

Procédure stockée de conversion de tables MyISAM en Aria

Je vous ai concocté une procédure stockée pour convertir vos tables MyISAM en Aria. Après vous être connecté via un tunnel SSH à votre serveur, je vous conseille de requêter directement sur votre base MariaDB à partir de HeidiSQL :

DELIMITER //
CREATE PROCEDURE allengines2aria()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE strSchema,strTable VARCHAR(255);
DECLARE curInnoDB CURSOR FOR
    SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.TABLES WHERE ENGINE IN ('MyISAM') ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN curMyISAM;
read_loop: LOOP
    FETCH curInnoDB INTO strSchema,strTable;
    IF done THEN
      LEAVE read_loop;
    END IF;    
    SET @s=strSchema;
    SET @t=strTable;
    SET @sql=CONCAT('ALTER TABLE `',@s,'`.`',@t,'` ENGINE=Aria');
    PREPARE stmt FROM @sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END LOOP;
CLOSE curMyISAM;
END; //
DELIMITER ;

Pour exécuter cette procédure stockée :

CALL allengines2aria();

Autres éclairages

MariaDB  / Aria Formateur LAMP Formateur MariaDB Formateur MySQL Lamp MariaDB MyIsam MySQL 

Commentaires

avec sed c’est possible de basculer de MyIsam vers aria :

https://coderwall.com/p/lz0qsa/convert-all-myisam-tables-to-aria

@Bernard

Je dirais plutôt avec Bash…

Laisser un commentaire

(requis)

(requis)