Cruz: MySQL: Lassen sich hier 2 SQL Statements vermeiden?

Beitrag lesen

Hallo,

Ich halte das auf jeden Fall für sinnvoll das mit zwei Abfragen zu lösen, [...]

Es ist wohl bis zu einem gewissen Grade Geschmacksache, aber ich widerspreche aus folgenden Gründen:

Die Komponenten sind von vornherein nicht unabhängig. In beiden Listen stehen Namen, die von derselben Liste von Nachrichten kommen. Macht man zwei Abfragen, hat man zwei potenzielle Fehlerquellen, um gewissermaßen zwei verschiedene Versionen derselben Namensliste zu erzeugen. Da sehe ich keinen Grund für.

Naja, es sind unterschiedliche Views der selben Daten. Vielleicht will man ja mal die Nachrichten nach Datum sortieren und oh misst, dann sortieren sich die Namen ja auch um, die man ja eigentlich alphabetisch sortiert haben wollte. Mit einem SELECT treten dann solche Effekte auf.

Die zwei Fehlerquellen sind so oder so vorhanden, nur sind sie bei einer Abfrage auf eine Stelle konzetriert. So oder so, man muss sowohl auf die Namen, als auf die Nachrichten Acht geben, damit sie richtig funktionieren. Bei getrennten Abfragen hast du wenigstens zwei Module, die jeder für sich genommen einfacher sind, als die eine Abfrage. Wenn man sie dann geschafft hat, dann läufts auch und wenn man nur einen der beiden ändert, wird der andere nicht beeinflusst. Im Gegensatz wenn man alles in einer Abfrage macht.

Und so kann man einen floh zum Elephanten diskturieren. :) Aber es geht ja hier um Stil und das ist wichtig.

Schneller ist es auch

Gemessen habe ich es auch nicht, es ist mal wieder so ein Bauchgefühl. Der OP hat es ja mit Stringoperationen gelöst und langsamer als das geht es ja kaum. Datenbankabfragen hingegen sind von Profis bis zum Anschlag optimiert, Handles werden gecachet usw. Sie sind schnell. Ist eh egal, wenn die Laufzeit eines Skriptes maximal 1% der gesamten Zeit vom Klick bis zur kompletten Übertragung der Daten ausmacht. Wenn du da noch 2 - 3 Millisekunden rausholst, dann kannst du dir aber echt mal auf die Schulter klopfen. Da schreibst du besser langsameren aber lesbaren Code, oder zur Not halt irgendeine Lösung mit der du selbst als Anfänger klar kommst.

Cruz