Andres Freund: temporäre Tabellen

Beitrag lesen

Hi

Was der "AUTOCOMMIT-Modus" ist kann ich Dir leider nicht sagen, vermutlich steht das auch in der Doku, bin jetzt aber mal faul ;-)

Das weiß ich sogar, wenn du einen Tabellentyp benutzt , der Transaktionen unterstützt, das währen bei mysql soviel ich weiß InnoDB und BDB, dann kannst du mit Autocommit=1 Transaktionen bestätigen, oder mit Autocommit=0 eine neue Transaktion starten. Wenn du Autocommit dauerhaft gleich 1 setzt, wird jeder Eintrag einzeln vorgenommen.
Falls du nicht weißt was Transaktionen sind, eine grobe Erklärung:
Wenn du einen eintrag in eine DB machst, wird die während einer Eingabe Inkonsistent, dh. wenn die DB crasht, kann es sein dass die eingabe nicht vorgenommen wird. Oder wenn du mehrere Eingaben gleichzeitig oder eine die mehrere Felder gleichzeitig ändert wird z.b feld 100 durch Statement 2 (die jedes Feld verändert) verändert wäherend Statement 1 aufgrund einer komplizierten WHERE Klausel erst bei Feld 10 ist, und die WHERE Klausel bei Feld 100 aufgrund der Veränderung von Abfrage 2 nicht mehr zutrifft. Das gleiche trifft natürlich auch zu, wenn mehrere Clients/Prozesse gleichzeitig auf die Db zugreifen.
Deswegen werden viele Statements zu einer Transaktion zusammengefasst, die dann auf einmal stattfindet, wodurch die DB nicht inkonsitent wird. Ausserdem können, wenn während eines Skriptes ein Fehler auftritt, die Änderungen abgebrochen werden, so dass die DB nicht zt. alte und zt. neue Daten hat.
Ich hoffe ich habe das einigermaßen verständlich und richtig ausgedrückt.

PS: So ein Informatik Studium wäre wirklich was interressantes.
das Studium nicht so glaube ich ;-)

Doch, ich kenn jemand der am Stidieren ist, und es sehr interresant findet.

Noch eine Frage: Ich bin ebenfalls gerade am Schreiben einer Suchmaschiene für eine Internetseite und wollte daher fragen, ob du den Teil deines Skriptes in dem User-Eingaben in SQL geparst wird sehen, da ich mir da noch nicht so sicher bin, wie ich das machen soll.

Mfg
Andres Freund