Si vous souhaitez avoir plus de contrôle sur les données, essayez quelque chose comme ceci (en PHP) :
<?php
$conn = mysql_connect(...);
$num = 100000;
$sql = 'INSERT INTO `table` (`col1`, `col2`, ...) VALUES ';
for ($i = 0; $i < $num; $i++) {
mysql_query($sql . generate_test_values($i));
}
?>
où la fonction generate_test_values renverrait une chaîne formatée comme "('val1', 'val2', ...)". Si cela prend beaucoup de temps, vous pouvez les grouper afin de ne pas faire autant d'appels à la base de données, par exemple :
for ($i = 0; $i < $num; $i += 10) {
$values = array();
for ($j = 0; $j < 10; $j++) {
$values[] = generate_test_data($i + $j);
}
mysql_query($sql . join(", ", $values));
}
n'exécuterait que 10000 requêtes, chacune ajoutant 10 lignes.
1 votes
Disposez-vous déjà des données de test ou allez-vous devoir les générer ?
1 votes
Quelle est la structure de votre tableau ? et quelle langue utiliser ?
0 votes
Non, je n'ai pas de données de test, c'est pour les générer que je cherche une solution.
0 votes
J'ai 4 tables que je joins et qui auront chacune environ un million d'enregistrements et j'ai besoin de tester la performance de ma requête pour laquelle je dois remplir ces tables avec des données de test dès maintenant.