![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 | ||
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.583
|
Hi,
ich habe hier gerade nicht die Möglichkeit nachzuprüfen, aber mich würde interessieren was die Anweisung INSERT IGNORE im vergleich zu einem einfachen INSERT macht!? Hier steht Zitat:
Was ist los? Weiterhin steht hier Zitat:
Bin etwas verwirrt.. Danke für Eure Hilfe. Grüße, Ben. |
||
|
|
|
|
|
Nach oben #2 | ||
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
Zitat:
Zitat:
Vorteil von IGNORE ist die Möglichkeit, 2 identische Datenbanken mit differierenden Beständen zu mergen ohne das es knallt. Replace ersetzt einfach während INSERT IGNORE doppelte Einträge vermeidet ohne durch eine Fehlermeldung das Skript zu beenden.
__________________
I did it my way - Senseless-Blog |
||
|
|
|
|
|
Nach oben #4 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
Also benutzt habe ich delayed noch nicht, aber soweit ich die Doku bzw mein Wissen noch korrekt zusammenbekomme muss man ja bei normalen Inserts/Updates warten bis die DB den Befehl verarbeitet hat.
Wenn man nun DELAYED benutzt, schluckt er den Befehl und lässt dich, also den Client weiterarbeiten. Nachteil ist das du nicht sofort mitbekommst, ob alles geklappt hat und das (siehe Doku) die DB mehr Leistung frisst. Ein INSERT DELAYED mit anschließendem mysql_error() ist daher also nicht möglich, da du keine wirkliche Antwort bekommst. Vorteil ist (siehe Doku) natürlich das du schneller Arbeiten kannst. Das ist gut für Loggings in der DB z.B. Doku: http://dev.mysql.com/doc/refman/5.1/...t-delayed.html (haste sicher schon
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #6 |
|
Erfahrener Benutzer
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 491
|
wenn man nen haufen ereignisse hat, die ins log eingetragen werden müssen, kann man die entsprechenden queries ans dbms senden und braucht nicht zu warten, bis das query ausgeführt wurde, sondern das programm läuft einfach weiter und es gibt keine rückmeldung ("wird schon geklappt haben"). dadurch ist das ganze halt schneller als wenn man auf die abarbeitung jedes queries warten würde...
__________________
Weißt Bescheid - Scheiß wie weit |
|
|
|
|
|
Nach oben #7 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.583
|
Achso. Ich habe da was falsch verstanden.
Die einzelne Abfrage dauert mit INSERT DELAYED etwas länger, aber im Endeffekt ist es schneller, als wenn ich mit INSERT die Log-Einträge abspeichern würde. So ist richtig, oder? Andere Anwendungsbeispiele, als das Logging? |
|
|
|
|
|
Nach oben #8 | |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
Zitat:
Ne andere Anwendung wüsste ich jetzt nicht, da man normalerweise nicht so schnell Daten schreiben muss und zeitgleich so "gleichgültig" mit dem Erfolg des Schreibvorgangs umgehen kann. Es ist definitiv nicht anzuraten bei Einfügen sensibler und wichtiger Daten. Also nicht beim Import von Backups z.B. Sorry ansonsten fällt mir nix ein... //edit: Auf Suche gewesen und nur ein weiteres Beispiel gefunden: Wenn man größe Datenbestände bearbeiten will die halt Zeit brauchen, wie ein Update über die komplette Tabelle oder ein Delete ... ( http://lists.phpbar.de/archive/mysql-de1/msg01920.html )
__________________
I did it my way - Senseless-Blog |
|
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [MYSQL] Insert wird nicht sofort ausgeführt | pen2010 | Datenbanken | 6 | 07.08.2007 23:02 |
| [MySQL] INSERT mit Wert aus einer Liste... | WarrenFaith | Datenbanken | 6 | 16.05.2007 16:58 |
| PRoblem mit Cookie bei PHPbb-Board | Julied64 | PHP-Programmierung | 2 | 12.12.2005 15:41 |