mmofacts.com

Umfrage zur Datenauswahl

gepostet vor 18 Jahre, 9 Monate von BLUESCREEN
Ich wollte nur mal sehen, wie viele Leute die erste Möglichkeit wählen

Eigentlich sollte diese Umfrage ins Anfänger-Forum, aber da kann man keine Umfragen erstellen...
gepostet vor 18 Jahre, 9 Monate von knalli
Ich verstehe die Frage nicht so ganz.. was für Daten?
Meinst du Tabellenspalten? Oder Modulrelevante Daten?
Es macht bei beidem nicht viel Sinn, es vorher zu laden, wenn man es nicht gebrauchen kann; bei Tabellen imho könnte es auf die Menge der Daten ankommen, ob beim entsprechenden Nutzungsverhalten ggf das 2. Query nicht mehr Last verursachen würde..
gepostet vor 18 Jahre, 9 Monate von Kampfhoernchen
Also ganz eindeutig: Nur das holen, was man braucht.

Gründe:
- MySQL kann viel schneller Filtern als PHP das kann
- Es entsteht längst nicht so viel TCP-Traffic
- PHP muss keine gewaltigen Datenmengen handeln, wofür es nun wirklich nicht geeignet ist
gepostet vor 18 Jahre, 9 Monate von Mudder
Schliesse mich Kampfhörnchen vollständig an.
Datenbanken sind genau zum sortieren und filtern solcher Daten da also sollte man das auch verwenden!
gepostet vor 18 Jahre, 9 Monate von BjoernLilleike
Ich habe auch schon Fälle gehabt, in denen ich einfach keine passende Abfrage gestrickt bekommen habe, die die Vorauswahl vollständig bewältigen könnte. Dann habe ich in php nachbearbeitet.

Ansonsten hole ich nach Möglichkeit natürlich auch direkt das aus der Datenbank, was der Spieler sehen darf - denn das schicke ich dann einfach komplett unbearbeitet weiter und kümmere mich im Browser um die Darstellung - der Server leitet dann einfach nur weiter..
gepostet vor 18 Jahre, 9 Monate von Macavity
schliesse mich meinem vorschreiben an.
kann ja sein dass es die tatsache ob ein User den entsprechenden datensatz sehen kann/darf/soll/.. nicht so einfach aus der DB zu lesen ist, dann natürlich über PHP aber das dürfte wohl eher die Ausnahme sein, bzw dann macht es mehr sinn einfach ein Feld in der Table einzufügen die dann entsprechend gefüllt wird... oder so
gepostet vor 18 Jahre, 9 Monate von knalli
Vielleicht ist heute nicht mein Tag.. aber ich weiß noch immer nicht, um welchen Kontext es sich hier handelt?

- "User darf nicht sehen, ob neue PMs für ihn eingegangen sind"
- Das System baut auf einem Flag in der Usertabelle auf

=> Es wäre mE Unsinn, dieses Flag nachzuladen, wenn man die Registrierung erst später im Script validiert.



Oder aber, ich kapiere die ganze Frage schlechthin total falsch, womit ich wieder beim ersten Satz meines Postings wäre.. (endlosschleife)
gepostet vor 18 Jahre, 9 Monate von Mudder
Es geht einfach um die Frage ob man Daten (egal welche) komplett aus der DB ausliesst und dann per PHP sortiert ob der User das lesen darf oder ob man per Query sagt das nur die und die Datensätze ausgelesen werden sollen.

Sprich Forum: Ob man alle Threads ausliesst und dann per PHP schaut welche dem User nun angezeigt werden sollen oder ob man gleich sagt das nur "category = 123" auslesen.
gepostet vor 18 Jahre, 9 Monate von Kallisti
WHERE und indizes existieren nicht umsonst.
gepostet vor 18 Jahre, 9 Monate von BLUESCREEN
Zwei von 30. Ist das nun gut oder bedenklich?
gepostet vor 18 Jahre, 9 Monate von woodworker
für die 2 ist es bedenklich
gepostet vor 18 Jahre, 9 Monate von BjoernLilleike
Ich habe einfach mal gegen den Trend gestimmt, weil die bevorzugte Vorgehensweise nun einmal nicht immer geht - in 99% der Fälle mache ich es aber natürlich auch "richtig".
Aber ich fand zum Ausdruck bringen zu müssen, das das Spieldesign sich nicht von der Machbarkeit der dazu passenden Abfrage einschränken lassen dürfte.
gepostet vor 18 Jahre, 9 Monate von schokofreak
Original von BjoernLilleike
Ich habe einfach mal gegen den Trend gestimmt, weil die bevorzugte Vorgehensweise nun einmal nicht immer geht - in 99% der Fälle mache ich es aber natürlich auch "richtig".
Aber ich fand zum Ausdruck bringen zu müssen, das das Spieldesign sich nicht von der Machbarkeit der dazu passenden Abfrage einschränken lassen dürfte.


Frage: Es gibt Abfragen, welche nicht möglich sind? *stuan*
gepostet vor 18 Jahre, 9 Monate von BjoernLilleike
Beispiel:
Mein Maskenproblem (siehe anderen Thread) ließ sich (von mir) nicht in einer Abfrage lösen. Dabei werden bis zu 60 Sektoren mit je 16 Feldern als ein Array zurückgegeben, in dem nicht bekannte Felder anhand einer Maske mit 0 überschrieben werden.
Jedes Feld hat nur 1Byte Information und die dazu gehörige Maske logischerweise nur 1Bit - wodurch diverse denkbare Ansätze disqualifiziert wurden: Ich könnte natürlich für jeden Sektor die Maske separat speichern und einen simplen left join machen. Aber das Verhältnis aus Nutzdaten zu DB-Overhead stünde in keinem Verhältnis, wenn ich einen Index von 7 Byte (4 Byte Planet+2 Byte Spieler+1 Byte Sektor) brauche, um 2 Byte Sektormaske (16 Felder) zuzuordnen.

Nun werden die optimiert gespeicherten Feld- und Maskendaten eben aus der Datenbank abgerufen und erst in php kombiniert und dann an den User ausgegeben.

Wenn du das in eine lesbare und verständliche Abfrage bringen kannst, die die Speicherlast nicht wesentlich erhöht, will ich gerne lernen und die nutzen.
gepostet vor 18 Jahre, 9 Monate von Krisch
Das ist klar, aber die Umfrage stellt einen anderen Fall dar.
gepostet vor 18 Jahre, 9 Monate von BjoernLilleike
@Krisch: Wieso anderer Fall?
Ich hole alle Datensätze, die den Planetenuntergrundes des Planeten betreffen aus der Datenbank und sortiere in php aus, was der Spieler nicht sehen darf.
gepostet vor 18 Jahre, 9 Monate von Riston
Ich mach das och anders. Die Templates stellen das dar, was sie halt können und mehr nicht. Nix mit filtern, bzw das macht letzendlich das Template
gepostet vor 18 Jahre, 9 Monate von Krisch
@BjoernLilleike: Das bei dir war ein Spezialfall. Aber weil hier nichts anderes gesagt wurde, kann man vom allgemeinsten Fall ausgehen. Außerdem wäre die Frage sinnlos, wenn man nicht beides machen könnte.
gepostet vor 18 Jahre, 9 Monate von Skyrunner
In der Regel frage ich natürlich nur das ab was ich auch brauche. Manchmal ist es aber innvoll statt 3 Abfragen nur eine abzuwerfen, die man später dann filtert. In C# .NET gibts ja sowas auch (DataView, DataTable). Für PHP müsste man sich da ggf. selbst ne Shaper- Klasse machen, die das erledigt. Wie gesagt, sowas braucht man aber eher selten und ist auch nur in ganz wenigen Fällen wirklich schneller.

Auf diese Diskussion antworten