Je dois migrer une table de MSSQL Server vers MySQL. Le problème est que la table est assez grande (65 millions d'enregistrements) et tout le processus prend trop de temps. Est-ce que quelqu'un a une idée de comment accélérer les choses? Des outils utiles qui pourraient améliorer cela?Migrer la table de MS SQL Server vers MySQL
Répondre
vous pouvez exporter les données vers le texte, puis utilisez l'instruction de charge mysql:
données charge infile '/somefolder/text_file_with_data.txt'
locale dans la table des champs some_table terminé par '\t'
lignes terminées par '\n'
ou si vous placez le fichier de données sur le serveur MySQL, vous pouvez:
données INFILE '/somefolder_on_the_mysql_server/text_file_with_data.txt'
dans la table des champs some_table terminés par '\t'
lignes terminées par '\n'
Je ne suis pas sûr de savoir quelle est la syntaxe de mssql à exporter
Vous pouvez toujours exporter par jeux de 10 000 ou 100 000.
Besoin de le faire une seule fois? Ne perdez pas trop de temps à optimiser, attendez jusqu'à la fin et continuez.
Besoin de le faire plus souvent? Ensuite, élaborer les outils/techniques que vous utilisez actuellement serait utile.
Assurez-vous que les tables mysql n'ont initialement aucun index; ajoutez-les une fois les charges terminées.
Assurez-vous que le fichier de stockage de table MySQL est assez grand avant de commencer l'insertion en utilisant une telle déclaration dans votre fichier my.ini:
innodb_data_file_path=ibdata1:1000M:autoextend
Essayez si vous pouvez obtenir les données de MSSQL et dans mysql par en utilisant les packages SSIS/DTS que vous pouvez générer avec l'assistant d'importation/exportation de SQL Server. (Connectez-vous à MySQL avec le fournisseur OLEDB/ADO approprié
Commencez quand vous rentrer à la maison le vendredi, et revenez après le week-end;.)
Assurez-vous qu'aucun des colonnes ont un index sur eux, et supprimer tout clés étrangères (si vous utilisez InnoDB pour le type de table) pour l'importation.
Voici comment j'ai fait pour migrer une table d'enregistrements 800K de MS SQL Server vers MySQL.
Créer une requête pour afficher les données dans un format tabulaire :
SELECT [PostalCode] + ' ' +
[StateCode] + ' ' +
[Latitude] + ' ' +
[Longitude] + ' ' +
[CityName]
FROM [dbo].[PostalCode]
exécuter la requête avec SQL Server Management Studio et sélectionnez d'afficher les résultats dans un fichier (Menu: Requête -> Résultats To -> Results to File)
Le nom de fichier doit être le nom de la table dans MySQL. L'extension de fichier n'a pas d'importance.
Ensuite, utilisez mysqlimport.exe (sous Windows) pour importer les données (la table doit exister dans la base de données MySQL):
mysqlimport.exe --user=user_name
--columns=postalcode,statecode,latitude,longitude,cityname
--ignore-lines=2 databaseName pathToFile
Après l'importation, je devais supprimer les 2 derniers enregistrements de la table parce que la fin du fichier contenu quelques déchets: (818193 ligne (s) affectée)
Pour 800K, c'est assez rapide: 10 secondes pour l'exportation, puis 10 secondes pour l'importation.
Espérons que cela aide.
- 1. Migrer MS Access vers MySQL
- 2. Comment migrer de MS Access vers le serveur SQL 2005?
- 3. Outil de migration SQL Server vers MYSQL
- 4. Comment puis-je migrer la base de données de SQL Server 2008 vers SQL Server 2000
- 5. MS SQL Server 2008 - Confusion dans la migration de MySQL re: "sélectionnez XYZ de TABLE"
- 6. migrer les données postgreSQL vers mysql
- 7. migrer des données de MS SQL à PostgreSQL?
- 8. Comment migrer les rapports SQL Server 2000 vers SQL Server 2005/2008?
- 9. SQL Server 2008 - Migrer la base de données vers un nouveau schéma de manière plus efficace?
- 10. SQL Server convertisseur mySQL
- 11. MySQL: Sélection de données à partir de MS SQL Server
- 12. Comment migrer les diagrammes de base de données SQL Server vers une autre base de données?
- 13. Exportation de SQLite vers SQL Server
- 14. MS SQL - Migration MySQL dans une ancienne application Web
- 15. Questions de base sur MS SQL Server 2008
- 16. MS SQL Server, insérer plusieurs
- 17. Migration de SQL Server vers Oracle
- 18. Manipulation de chaînes dans MS SQL Server
- 19. MS SQL Server COLUMNS_UPDATED() Fonction
- 20. Conversion de SQL Server vers Oracle10g
- 21. Suppression de colonnes dans MS SQL Server
- 22. Mise à jour efficace de la table MySQL à partir de SQL Server
- 23. Migrer de Perforce vers Subversion
- 24. Migration de la base de données SQL Server vers Sybase
- 25. MySQL to SQL Server 2005
- 26. Incrémentation de la colonne int dans la table MS SQL Server via SP
- 27. Exportation d'un serveur Excel vers SQL Server Table temporaire
- 28. Sauvegarde MS SQL Server 2005?
- 29. MS SQL Server 2005 sp_stored_procedures
- 30. SQL Server: Copie de la colonne dans la table
Réponse similaire: http://stackoverflow.com/questions/11619177/sql-server-2008-r2-to-mysql-migration/11625261#11625261 – Jacob