Philipp Hasenfratz: SQL: Bedingtes Update durchführen?

Beitrag lesen

Halihallo Thomas

Ich halte das gar nicht für so schlimm mit den POS-Feldern. Da es in der Regel nur ca. 20 bis 30, vielleicht mal 50 Unterpositionen zu einer Seite gibt, und die dann ohnehin alle geholt werden müssen, kann MySQL die ohne weiteres im Speicher sortieren. Das POS-Feld selber muss auch nicht Bestandteil des Index werden.

Ohne weiteres sortieren? - Aber 'türlich, das stellt mysql nicht vor grössere Probleme.

Ich denke, das Select besorgt die Menge über die ID der Seite und die einzelnen Elemente werden dann durch das Orderstatement erst sortiert. Wenn die DB schlau ist, merkt die, dass auf ID ein Index liegt und auf POS nicht und optimiert das Query entsprechend.

EXPLAIN SELECT foo, bar FROM bar ORDER BY foo

wird dir das sagen. Ich bin mir sogar sehr sicher, dass Mysql den Query entsprechend
optimiert und sonst ist es schlecht programmiert(tm) :-).

Wäre mir nur lieber gewesen, ich müsste nicht locken. Bei drei einzelnen Folgestatements wird mir da aber nix anderes übrig bleiben.

Naja, also wie gross würde den der Schaden sein, wenn das mal schief laufen würde?
Und wie gross ist die Wahrscheinlichkeit, dass es falsch laufen wird?
Beides miteinander multipliziert gibt deinen "Problemkoeffizient", der IMHO sehr klein
ausfallen wird. Vielleicht so klein, dass du ihm keine Relevanz mehr zuordnest, aber
das ist deine Entscheidung.
WARNUNG: Diese Überlegung ist in den _meisten_ Fällen tödlich! - Solche Fragen darf
man sich nicht stellen! - Also besser doch ein LOCK TABLE ;)

Subselects sind ja noch ausstehend...

Die haben mir schon sehr gefehlt zur Inkonsistenzsuche. Zum Glück habe ich hier Rat bekommen. Mit "left outer join" hats dann auch geklappt.

Ja, mit LEFT OUTER JOIN's kann man einige gewisse Subselects "umgehen"; steht auch als
Beispiel in der Doku.
Inkonsistenzsuche: Nun, eines der sehr wichtigen Prinzipien einer Datenbank ist, dies
auf Datenbankebene gar nicht zuzulassen. Bei MySQL ist man leider noch auf eine
Suche angewiesen, bzw. muss das programmiertechnisch ausschliessen. Aber Datenkonsistenz
sollte schon das Problem der Datenbank sein und nicht des Anwenderprogrammes. Aber
vielleicht fabrizieren sie auch schon an derartigen Features.

Hat sich deine Frage eigentlich erledigt? - Ich hörte aus deinem Posting keine
(Rück-)Frage heraus.

Viele Grüsse

Philipp