Note: les rédacteurs en chef: s'il vous plaît modifier le titre si avoir un meilleur :)supprimer des enregistrements de la table en utilisant une autre table?
ma question est:
J'ai deux tables dans ma base de données
-----------
| table1 |
|----------|
| id |
|text |
===========
-----------
| table2 |
|----------|
| id |
|text |
===========
table1 est 600.000 dossiers
table2 est 5.000.000 enregistrements !! :)
quelle est la meilleure façon de supprimer tous les enregistrements dans table2 à ne sont pas dans le tableau 1
I principale de la façon la plus rapide parce que -le je ne veux pas attendre 4 heures pour terminer le processus
avez-vous quelque chose de mieux que le code suivant:
<?PHP
$sql = "select text from table2";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$text = $row["text"];
$sql2 = "select id from table1 where text = '$text'";
$query2 = mysql_query($sql2) or die(mysql_error());
$result2 = mysql_num_rows($query2);
if($result2==0){
$sql3 = "delete from table2 where text = '$text'";
$query3 = mysql_query($sql3) or die(mysql_error());
}
}
?>
Merci
La suppression d'une telle quantité d'enregistrements peut-elle déborder le journal des transactions? – mjv
dépendent s'il fait une transaction mais oui si 'oui' l'enregistrement de la transaction augmenterait considérablement – RageZ