2009-09-30 11 views
1

J'ai une source de données sur une machine Windows qui prend en charge une connexion ODBC. Je veux copier par programme cette source de données entière vers une base de données MySQL toutes les heures. Y at-il quelque chose de plus rapide que de faire un select * from puis de faire un insert pour chaque ligne?Mirroring source de données ODBC pour MySql

Répondre

1

Le select * from ne pouvait pas être évité, comme mentionné. Cependant, les insertions étaient deux fois plus rapides que les autres méthodes si toutes les données étaient écrites dans un fichier et que LOAD DATA INFILE ... était utilisé.

Les inserts étaient assez rapides pour couvrir les coûts de l'écriture de données ODBC dans un fichier et la suppression des données MySql complètement et à partir de zéro.

1

Vous ne pouvez probablement pas éviter le select * from mais vous pouvez le faire beaucoup plus rapidement (en fonction de la taille de vos tables et le nombre de colonnes indexées) en désactivant clés sur la table de destination avant la copie et les réactiver après. Voici le doc.

1

Dont do l'insert pour chaque ligne. Chacun prend plus de temps pour que la base de données réponde que chaque rangée a réussi. Au lieu de cela, créer des lots de 100 insertions à la fois avec les transactions SQL ...

Questions connexes