_King Lully: MySQL mit 6,2 Mio. Datensätzen

Beitrag lesen

Danke schon mal vorab,

Mal eine Skizze:

DELETE
FROM
DT_1
WHERE
DT_1_ID NOT IN
(
SELECT DISTINCT
  DT_1_ID               --,
                        --  <Kriterienliste>
FROM
  DT_1
)


> >   
> > Haben jetzt wenig Zeit, scheint mir ziemlich einfach zu sein, aber vielleicht irren wir, bitte prüfen...  
>   
> Habe ich schon mal getestet. Das Problem ist das karthesische Produkt der beiden Abfragen, dieses wird zu groß für den Speicher (von der Ausführungszeit ganz zu schweigen)  
  
Bitte mal präzisieren, wir sehen hier kein Produkt:  
  
"  
<?php  
echo "lese Daten: "; // Kontrollausgabe, ob der Skript überhaupt gestartet ist  
  
$daten = mysql\_db\_query("datenbank","select id, name from tabelle group by name order by name") or die(mysql\_error());  
  
echo "Totalcount einzelne Firmennamen: ".mysql\_num\_rows($daten)."\n\n"; // Kontrollausgabe, um die Datenmenge  zu sehen  
  
while ($wert = mysql\_fetch\_array($daten) )  
{  
    $i++;  
    mysql\_db\_query('datenbank','delete from tabelle where name = "'. addslashes($wert[name]).'" and id != "'.$wert[id].'"') or die (mysql\_error());  
    echo "Name: ". $wert["name"] .", Datensatz: $i "; // erneute Kontrollausgabe, um zu prüfen, ob der Skript überhaupt noch arbeitet  
}  
echo "Fertig"; //Letzte Kontrollausgabe  
?>  
"  
  
Und, bitte mal die Anforderung konkretisieren, zumindest wenn unser vorgeschlagenes Vorgehen unzureichend erscheint.  
  
(Wenn Du überhaupt keine Ahnung hast, auch OK! Aber bitte jetzt kurz darauf hinweisen.)