Par défaut sur le serveur, c'est le moteur InnoDB qui est utilisé.
Le passage du fichier Access vers MariaDB se fait dans une base de donnée temporaire (MyISAM). Un dump est fait à partir de là et réinjecté dans la base de donnée "en production" (InnoDB).
Voici un résumé de mon script :
$mdbfile="db_MSAccess.mdb"echo"SET storage_engine=MyISAM;" >db_schema.sql
mdb-schema --drop-table "$mdbfile" mysql |grep -v "^COMMENT ON COLUMN" >>db_schema.sql
mysql -u theuser -pthepass tempdb <db_drop_tables.sql
mysql -u theuser -pthepass tempdb <db_schema.sql
# Oui, dans la base de donnée Access,# les noms de table sont parfois "horribles" :(
mdb-export -D %F -I mysql "$mdbfile""Première Table" >db_data.sql
mdb-export -D %F -I mysql "$mdbfile""Deuxième Table" >>db_data.sql
# ... les autres tables...
mysql -u theuser -pthepass tempdb <db_data.sql
# Oui, je corrige cela...
mysql -u theuser -pthepass tempdb <db_rename.sql
# et encore d'autres aberrations...
mysql -u theuser -pthepass tempdb <db_cleaning.sql
mysqldump -u theuser -pthepass tempdb >tempdb_dump.sql
sed -i 's|ENGINE=MyISAM|ENGINE=InnoDB|g' tempdb_dump.sql
mysql -u theuser -pthepass proddb <tempdb_dump.sql
Résultat, ce qui prenait 37 minutes prend maintenant 37 secondes :)
# SOLUTION ! passer par MyISAM
Posté par Space_e_man (site web personnel) . En réponse au message MariaDB (MySQL) MDB Tools → trés nombreux insert, extrêmement lent :( ? [résolu]. Évalué à 3. Dernière modification le 09 octobre 2015 à 16:18.
Par défaut sur le serveur, c'est le moteur InnoDB qui est utilisé.
Le passage du fichier Access vers MariaDB se fait dans une base de donnée temporaire (MyISAM). Un dump est fait à partir de là et réinjecté dans la base de donnée "en production" (InnoDB).
Voici un résumé de mon script :
Résultat, ce qui prenait 37 minutes prend maintenant 37 secondes :)