MySQL Update optimieren

Steusi

Nasenbär
Hallo, ich lasse meine Datenbank am Tag öfter aktuallisieren. Nur sind beim ersten einlesen nicht schon immer alle Felder belegt, neue werden durch die Funktion Update ja nicht hinzugefügt.


PHP:
$update = ("UPDATE tbl_seitenzahlen SET Zaehlerstand='".$arrStand[$i]."' WHERE Datum='".$datum."' AND Name= '".$arrName[$i]."'");

Der Seitenstand soll immer aktualisiert werden in Abhängigkeit vom Namen und dem Datum. Jedoch habe ich manchmal noch gar nicht alle Namen in der DB.

Was würdet Ihr machen?
Schon mal vorab für den Tag einen Dummyeintrag mit allen Namen machen?

In folgender Art:
PHP:
$dummy= "INSERT INTO tbl_seitenzahlen (Datum, Name) VALUES ('$datum', '$arrName[$i]')";

Oder würdet Ihr den heutigen Datenbankeintrag komplett löschen und wieder neu einlesen lassen?

In folgender Art:
PHP:
$delet = ("DELETE FROM tbl_seitenzahlen WHERE Datum` = '".$datum."'");
$eintrag = "INSERT INTO tbl_seitenzahlen (Datum, Name, IP, Zaehlerstand, Test) VALUES ('$datum', '$arrName[$i]', '$arrHostIP[$i]', '$arrStand[$i]', '0')";

Was ist optimaler
 
Einen Unique Index auf Datum und Name legen.

$eintrag = "INSERT INTO tbl_seitenzahlen (Datum, Name, IP, Zaehlerstand, Test) VALUES ('$datum', '$arrName[$i]', '$arrHostIP[$i]', $arrStand[$i], '0') ON DUPLICATE KEY UPDATE Zaehlerstand=".$arrStand[$i]."";

Es wird also IMMER ein insert gemacht, wenn der Datensatz (anhand Name und Datum) aber schon da ist wird dieser upgedatet.
 
Zurück