Philipp Hasenfratz: nach inserts -> server has done away

Beitrag lesen

Halihallo norman

die inserts werden sehr schnell durch ein script in die db geblasen. ich prüfe aus performancegründen nicht ständig ob es den spaltenwert schon gibt, sondern nutze IGNORE.

http://www.mysql.com/doc/en/REPLACE.html ist in den meisten
Fällen die "sicherere" Variante, jedoch müsstest du dann spalte
als PRIMARY KEY definieren. Sicherer deshalb, da auch bei
existierendem Primary Key die Daten gespeichert werden und der
Vorgang nicht einfach abgebrochen wird. Aber wenn du wirklich nur
"spalte" ändern möchtest, ist INSERT IGNORE natürlich vorzuziehen.

nach ca. zehn inserts gibt mysql auf: server has done away.
vielleicht "verträgt" der mysql die vielen inserts auf einmal nicht... (zusammenfassen der inserts ist aber nicht möglich)

Dein MySQL-Server scheint nicht wirklich stabil zu sein... Nach
10 INSERT's einfach die Karotten von unten ansehen...

http://www.mysql.com/doc/en/INSERT.html

=>

INSERT IGNORE INTO table (spalte) VALUES
   ('A'),
   ('B'),
   ...

So wird nur noch ein Statement über die Verbindung gesendet und
ggf. kommt der Server damit besser zu rande und wird nicht
überfordert...
GGF. Die korrekte Verarbeitung a) über Fehlerbehandlung und b)
http://www.php.net/mysql_affected_rows überprüfen.

Viele Grüsse

Philipp