Retour vers InnoDB

Si le passage de MyISAM à Aria me fut salutaire grâce à une gestion de verrous autorisant les UPDATE et DELETE concurrents là où MyISAM pose des verrous sur table, je n’avais pas regardé véritablement du côté des performances. Or, lors de la formation Tuning MySQL / MariaDB donnée il y a 15 jours, les temps que nous avons remontés nous ont montré que Aria était plus lent que MyISAM dans le cadre d’une requête sur une seule table. Hier, j’ai étendu l’analyse en comparant les performances respectives de MyISAM, Aria et InnoDB. Le verdict fut sans appel : c’est InnoDB, dans le cadre du fonctionnement normal d’une base de données qui offre la plus grande performance ! Je l’ai vérifié dans le cadre de mon serveur Dedibox sur lequel s’exécute un moteur MariaDB 10.2.12. J’ai donc décidé de retourner à InnoDB, par l’écriture de cette procédure stockée.

Conversion des tables Aria en InnoDB.

La procédure stockée nommée aria2innodb – présentée ci-dessous – ne doit pas s’appliquer aux schémas mysql, information_schema et performance_schema. Le paramètre paramSchema représente la base de données, dans laquelle se trouvent les tables à convertir !

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

Exécution de la procédure stockée aria2innodb 

Remplacez ma_base_a_convertir par le nom de la base de données à convertir.

CALL aria2innodb('ma_base_a_convertir');

MariaDB / , , , , ,

deneme bonusu veren siteler casino siteleri betdenemebonusu.com bahis siteleri Ev eşyası depolama Depolama Şehirlerarası evden eve nakliyat Evden eve nakliyat Eşya depolama yurtdışına ev taşıma Türkiye'den Almanya'ya ev taşıma zati eşya tasimaciligi uluslararasi zati eşya tasimaciligi eşya depolama şehirler arası nakliyat asansörlü nakliyat greatplay.net güvenilir online bahis siteler 2022 jetbahis Rexbet hovarda mobilbahis güncel adres sartsız Deneme Bonus sekabet maltcasino güncel adres> pinbahis100.com betduman.com olabahis.top سایت شرط بندی shartkade.com 1xbet-mobil.com beykoz evden eve nakliyat ataşehir evden eve nakliyat şişli evden eve nakliyat istanbul evden eve nakliyat
teens porn videos free sex xxx sexy videos