J'ai donc une base de données là où il y a beaucoup de données insérées à partir d'une application Java. Usualy I Insérer dans Table1 Obtenez le dernier identifiant, puis insérez-vous dans la table2 et obtenez le dernier identifiant à partir de là et insérez enfin dans la table 3 et obtenez cet identifiant aussi bien et travaillez-le dans l'application. Et j'insère environ 1000-2000 rangées de données toutes les 10-15 minutes. P>
et en utilisant beaucoup de petits inserts et sélectionne sur un serveur Web de production n'est pas vraiment bon, car il tourne parfois sur le serveur. P>
Ma question est la suivante: Y a-t-il une façon d'insérer plusieurs données dans Tableau1, Table2, Table3 sans utiliser une telle quantité de sélection et d'insertions? Y a-t-il une technique SQL-FU qui me manque? P>
3 Réponses :
Il y a beaucoup à parler ici: P>
Puisque vous comptez probablement sur les touches primaires Auto_incrimentation, vous devez faire les insertions une à la fois, au moins pour table1 et table2. Parce que MySQL ne vous donnera pas plus que la dernière clé générée. P>
Vous ne devez jamais avoir à choisir. Vous pouvez obtenir le dernier identifiant inséré à partir de l'instruction à l'aide de la méthode Autres recommandations: P>
Malheureusement, vous ne pouvez pas utiliser la méthode la plus rapide pour la charge en vrac de données, getGeneratedheys () code>. Voir un exemple montrant celui-ci dans le manuel MySQL pour le connecteur / J: p>
Insérer code> Syntaxe pour table3. Li>
Alter Table Désactiver les touches CODE> pendant que vous importez et réactivez-les lorsque vous avez terminé. LI>
charger des données de charge code>, car cela ne vous permet pas d'obtenir les valeurs d'identification générées par ligne. P>
Vous pouvez redéfinir votre base de données de sorte que la clé primaire n'était pas une valeur générée par la base de données générée par la base de données, mais plutôt une UUID générée par le client. Ensuite, vous avez pu générer toutes les clés de chaque enregistrement initial et lottez les inserts, mais vous le souhaitez. P>
Bonne idée, mais il y a un mais ... le temps de redéfinir la base de données serait trop fastidieux. Il y a une redédition de base de données planifiée mais pas maintenant.