Mailinglisten-Archive |
Hallo, wie funktioniert eigentlich das "INSERT DELAYED" ? In meiner Test-Datenbank habe ich zwei Tabellen, eine mit ueber einer Million Datensaetzen und einer anderen mit ca. 4000. Die Felder der beiden Tabellen sind fast identisch. Nun reglemaessig bestimmte Daten aus der kleinen Tabell (Tabelle2) in die grosse (Tabelle1) eingefuegt werden. Hierfuer verwende ich folgenden SQL-Syntax: INSERT INTO Tabelle1 (Feld1, Feld2, Feld3,...) SELECT Feld1,Feld2,Feld3,... FROM Tabelle2 WHERE STATUS='X' Nun will ich zur Optimierung das "DELAYED" verwenden. Wenn ich die Dokumentation richtig verstehe fuegt die Datenbank dann nach einer Zeit mehrere Daten auf einmal in die entsprechende Tabelle ein. Nun frage ich mich nur wie das in meinem Fall mit dem SELECT aussieht? Wird das SELECT erst zur Zeit des wirklichen einfuegens ausgefuehrt oder direkt beim Ausfuehren des ganzen Befehls. Das Problem ist hier einfach nur das die Daten sich in der Tabelle2 zwischen den Queries aendern und ich somit die Daten, welche zum Zeitpunkt des "INSERT DELAYED INTO..."-Query in die Tabelle2 befinden in die Tabelle1 einfuegen will. Kann das ueberhaupt so funktionieren? Bringt mir das ueberhaupt Perfomance-Vorteile? mfG Michael
php::bar PHP Wiki - Listenarchive