• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

mysql Tabellen mit vordefinierter Zeilenzahl erstellen

chaebi

Newbie
Hallo

ich moechte eine mysql Tabelle mit 1 Million Zeilen erstellen.
Leider geht das rein mit INSERT anweisungen ziehmlich lange.
Ich lasse das php skript jetzt schon ca. 10. h laufen und habe erst 30% der Zeilen. Zudem knickte die Performance meiner Festplatte regelrecht ein. Gibt es keine effizientere Loesung (eine Million Zeilen auf einmal erzeugen?)
 
OP
chaebi

chaebi

Newbie
okay:

Code:
$x =0;
$y =0;

for($i = 0; $i < 1000001;$i++)
{
             mysql_query("INSERT into map (x, y, type, state) VALUES ($x,$y, "GREEN", "FREE"),$connection);

          $x++;
         if($x==1000)
         {
                $x = 0;
                 $y++;
         }

}

vielleicht sollte ich mich das naechste mal klarer ausdruecken,
aber diese Methode hier geht mir zu lange zum einfuegen.
 
Wieso sendest du deine INSERT-Statements nicht als Liste? Wenn du bei jedem Aufruf einen INSERT-Befehl an die DB sendest, dauert das in 99,9% der Fälle wesentlich länger. Mach doch eher etwas wie

Code:
$x =0;
$y =0;

for($i = 0; $i = 1000000;$i++)
{
    $query .= "($x,$y,\"GREEN\",\"FREE\"),"

    $x++;
    if($x==1000)
    {
        $x = 0;
        $y++;
    }
} 

mysql_query("INSERT into map (x, y, type, state) VALUES $query;

EDIT: Sorry, hatte noch einen Fehler entdeckt...
 
Oben