Zum Inhalt springen

Timeout bei MySQL-Abfrage


Empfohlene Beiträge

Hallo,

meine PHP-Datei beinhaltet eine SELECT - Abfrage und anschließend eine INSERT INTO - Abfrage.

Allerdings bricht die Datei jeweils nach 10 Minuten mit einem Fatal Error ab und bringt einen Timeout.

Es geht um 978 Datensätze, die mit je etwa 20 Attributen eingelesen und mit 30 Elementen in eine andere Tabelle geschrieben werden.

Das kann doch nicht so lange dauern?! Hat jemand eine Idee, was da schiefgeht?

Danke

etops

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe per SELECT jedes Feld einzeln aus der Ursprungs-DB ausgelesen. (erstes Feld ist ein Index). Eine WHERE-Klausel kommt dabei nicht vor.

Also nicht 900x SELECT sondern alles zusammen.

Die zweite Sache ist ein INSERT INTO ... VALUES ...

Ich hab ja stark die Vermutung, daß der Haken darin liegt, daß ich jede Zeile einzeln einlese, Bedingungen prüfe und dann in die neue Datei schreibe. Aber ich weiß nicht, wie ichs anders machen soll.

Zumindest das Einlesen muß zeilenweise passieren, da ich für jede Zeile Bedingungen prüfe, die an das Ende der Zeile angefügt werden.

Gruß

etops

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das hört sich zwar gut an, aaaaaaaaaber:

einige Felder, die in der neuen Tabelle gespeichert werden, sind ja in der Ursprungstabelle nicht gespeichert sondern werden erst berechnet.

Alle Felder werden einzeln in Arrays gespeichert und dann ausgegeben.

Nur: was ich eigentlich möchte, ist das Einfügen der Arrayinhalte in eine neue Tabelle.

Es wäre mir neu, daß das mit SQL geht!?

Danke für weitere Vorschläge

etops

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mein Problem existiert leider immer noch: Syntaktisch funktioniert alles, aber die Bearbeitung durch den Server führt nach ca 10-15Min zu einem Timeout.

Ich seh wahrscheinlich vor lauter Bäumen den Wald nicht mehr - bitte um Hilfe: Was mache ich falsch. Der Codeabschnitt, der sich mit der DB beschäftigt, lautet folgendermaßen:

Eine leere Zieltabelle ist bereits angelegt; sie soll nur noch mit Werten gefüllt werden.


while ($zeile = @ mysql_fetch_array($ergebnis)) // zeilenweises Einlesen der Quell-DB
{
verschiedene Berechnungen, von neuen Feldern

echo "\n<table>\n"
echo "\n<tr>";
echo "\n\t<td>{$zeile["feld1"]}</td>"; // Feld der Quell-DB
echo "\n\t<td>{$zeile["feld2"]}</td>"; // Feld der Quell-DB
echo "\n\t<td>{$zeile["feld3"]}</td>"; // Feld der Quell-DB
echo "\n\t<td>{$zeile["feld-a"]}</td>"; // neu berechnetes Feld
echo "\n\t<td>{$zeile["feld-b"]}</td>"; // neu berechnetes Feld
echo "\n</tr>";
echo "\n</table>"; // Ausgabe der berechneten Felder in HTML - Tabelle
// bis hierhin funktioniert alles inklusive
// Berechnung der neuen Felder
$num_rows = mysql_num_rows($ergebnis);
while ($num_rows >= 1)
{
$einfuegen;
}
}

$abfrage = "SELECT feld1, feld2, feld3 FROM basisdata";

$einfuegen = mysql_query("INSERT INTO newdata (feld1, feld2, feld3, feld-a, feld-
VALUES (' ".$zeile["feld1"]." ',' ".$zeile["feld2"]." ',
' ".$zeile["feld3"]." ',' ".$zeile["feld-a"]." ',
' ".$zeile["feld-b"]." ')");

if (!(ergebnis = @ mysql_query ($abfrage, $connection)))
showerror();
[/PHP]

Es wäre toll, wenn mich jemand mal auf das Problem stoßen könnte oder evtl sogar eine Lösung hätte!

Danke

-etops-

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die neuen Werte sind verschiedene Felder aus der Quell-DB, die unter bestimmten Bedingungen eingefügt werden -> es sind hauptsächlich Bedingungsprüfungen.

Es kann doch nicht so schwer sein, den Inhalt dieser Felder (die in HTML einwandfrei ausgegeben werden) in eine neue Tabelle zu schreiben?!

Danke

etops

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe gerade festgestellt, daß es eine Endlosschleife in Verbindung mit eigener Blödheit war, die mich hat scheitern lassen.

Jetzt habe ich nur noch ein (vermutlich) ganz kleines Problem: die neue Tabelle wird nur mit einer einzigen Zeile "gefüttert", die ausschleßlich Nullwerte in den entsprechenden Formaten der Feldern enthält.

Wo bitte ist nun der Fehler?

Danke + Gruß

etops

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...