anpera.net
https://anpera.dyndns.org/phpbb3/

Performance
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=5097
Seite 1 von 2

Autor:  Anderswelt [ Mo 08 Feb, 2010 22:35 ]
Betreff des Beitrags:  Performance

Huhu zusammen da ich grad flexible Vitalinfos baue hab ich mal ne einfache Frage zur Mysql performance

ersteinmal zum verständnis^^

ich bastel grad meine NPC funktion mit die vitalinfo ein. Wenn man die informationen über den NPC weg schaltet, bleibt nur noch der Name stehen (Das soll auch so bleiben)

was ist nun besser:

den Namen extra aus zu geben und im aufgedeckten Modus zwei anfragen durchlaufen zu lassen? (1x Name 1x rest)

oder alles durchlaufen lassen (auch im verdeckten modus, da ja der Name ausgegeben werden muss/soll)

also 1 große anfrage dauerhaft
oder
2 anfragen eine davon "Ausschaltbar"?

irgendwie hat beides in meinen Augen vor und Nachteile, desshalb wollte ich mal fragen was ihr davon haltet :D

Autor:  anpera [ Di 09 Feb, 2010 09:11 ]
Betreff des Beitrags:  Re: Performance

Grundsätzlich ist 1 Abfrage performanter als 2.
Ob du jetzt nur den Namen, oder den Namen und den Rest in einer Abfrage aus der Datenbank ausliest, dürfte einen kaum messbaren Unterschied machen.

Zwei getrennte Abfragen dürften in deinem Fall auf jeden Fall die schlechtere Wahl sein.

Autor:  Anderswelt [ Di 09 Feb, 2010 10:35 ]
Betreff des Beitrags:  Re: Performance

Mist hab ich dodch genau falsch rum geschätzt xD

danke vielmals, werds dann mal ändern :D

Autor:  Anderswelt [ Do 11 Feb, 2010 11:38 ]
Betreff des Beitrags:  Re: Performance

Nächste performance frage :D

Ortsbeschreibungen in der datenbank speichern..

zur erklärung: unsere server haben immer sehr viele RPG-plätze und da ich eine vorliebe dazu hab rs fehler zu setzen xD könnte man somit die texte natürlich dynamisch korrigieren oder bei bedarf (zb events) komplett ändern. nur die frage: wie datenbank-lastig ist das?
würde es das spiel stark verlangsamen?

Autor:  Eliwood [ Do 11 Feb, 2010 11:55 ]
Betreff des Beitrags:  Re: Performance

Kommt drauf an. Wie mans nicht machen sollte, zeigt die "neue" Version - mit aktivierter Übersetzungs-Engine wirds ziemlich ausgebremst.
Nur einen Titel holen, vielleicht noch einen Text dazu, macht nicht wirklich etwas aus.

Autor:  Auric [ Do 11 Feb, 2010 16:16 ]
Betreff des Beitrags:  Re: Performance

Wenn es nur statischer Inhalt ist, kannst du ihn auch in Textdateien schreiben, die per Grotten-Editor veränderbar sind, was noch ein wenig schneller sein dürfte, da das Betriebssystem da recht gut cachen kann. Das ganze wird eben erst dann komplizierter, wenn du mehrere Dynamische Elemente wie Zufallswerte, Namen oder Ähnliches hinein bringen möchtest. Auch noch machbar, aber eben schon etwas komplizierter für Einsteiger.

Autor:  Anderswelt [ Do 11 Feb, 2010 20:38 ]
Betreff des Beitrags:  Re: Performance

Mhhh die Idee von Kevs gefällt mir x) Danke dir :))

bis denne =D

(die nächste frage kommt bestimmt lol)

Autor:  Linus [ Do 11 Feb, 2010 22:44 ]
Betreff des Beitrags:  Re: Performance

Anderswelt hat geschrieben:
Mhhh die Idee von Kevs gefällt mir x) Danke dir :))

:???: hab ich da jetzt irgend etwas verpasst?

Autor:  Harthas [ Fr 12 Feb, 2010 01:33 ]
Betreff des Beitrags:  Re: Performance

Die dynamischen Werte aus den Files könnte man auch einfach durch Platzhalter ersetzen, und dann entweder durch str_replace oder sprintf oder so parsen.

Autor:  Anderswelt [ Fr 12 Feb, 2010 09:59 ]
Betreff des Beitrags:  Re: Performance

Linus hat geschrieben:
Anderswelt hat geschrieben:
Mhhh die Idee von Kevs gefällt mir x) Danke dir :))

:???: hab ich da jetzt irgend etwas verpasst?

huch o.o ne du nich, aber ich xD meint natürlich Auric^^

Autor:  Kevz [ Fr 12 Feb, 2010 20:35 ]
Betreff des Beitrags:  Re: Performance

Linus hat geschrieben:
Anderswelt hat geschrieben:
Mhhh die Idee von Kevs gefällt mir x) Danke dir :))

:???: hab ich da jetzt irgend etwas verpasst?

Das fragte ich mich gerade auch. Wobei mein Nickname ja mit z am Ende geschrieben wird und nicht s. :-)

Autor:  Anderswelt [ Sa 13 Feb, 2010 03:10 ]
Betreff des Beitrags:  Re: Performance

Au weh Z und S verwechZelt tut mir daZ leid :P
ne nix für ungut :p


ehm ja. nächste Performancefrage naja mehr oder weniger

Ich würde gern alle user nach den Anfangsbuchstaben des Logins zählen also:

23 beginnend mit A
33 beginnend mit B
...
...

22 beginnend mit Z

gut so weit so gut, is ja an sich keine große sache (wenn man 26 einzelne abfragen benutzt xD) nur sieht mir das irgendwie nicht wirklich performance fähig aus x'D

ich hab gerade die letzten geschlagenen 5 stunden versucht diese anfragen mit ein ander zu verbinden und ich habs einfach nicht gebacken bekommen x.x hat da einer ne idee wie man das ganze verbinden könnte?

Tipps? Hilfestellungen? Beispiele? Dumme Kommentare? Gern gesehen :D



ps mein letzter versuch für heut der nich geklappt hatte (verständlicher weise aberversuchen kann man es ja mal...)

$lettersql = "SELECT count(login) AS range('A','Z') FROM accounts WHERE login LIKE 'range('a','z')%'"; << war der da xD (ich glaub daran sieht man dass ich langsam vezweifel :cry:

Autor:  Harthas [ Sa 13 Feb, 2010 04:14 ]
Betreff des Beitrags:  Re: Performance

Vielleicht irgendwas wie: SELECT SUBSTRING( login , 1 , 1 ) AS firstletter , count( acctid ) FROM accounts GROUP BY SUBSTRING( login ,1 , 1);
In logd hab ich's jetzt nicht getestet, sollte aber genau so eigentlich funktionieren.

Autor:  Anderswelt [ Sa 13 Feb, 2010 18:07 ]
Betreff des Beitrags:  Re: Performance

Danke dir Harthas habs nu hin gekrigt :)

Nochmal zurückzum Dynamischen speichern der Texte

Mh also das mit den Textdatein hab ich nun hin bekommen aber rein vom Optischen wert her überzeugts mich nich wirklich (übersetzt keine $variablen)

aber mir kam gerade eine ganz andere Idee: Kann man rein zufällig Teile und auch nur Teile eines Php-skripts online editieren? wenn ja wie? Hat jemand einen Hilfreichen Tipp/Stichwort?^^

bei google bin ich nur fündig geworden was ganze Datein angeht und das ist nen "bissl" zuviel des guten..^^

Autor:  Harthas [ Sa 13 Feb, 2010 18:20 ]
Betreff des Beitrags:  Re: Performance

Variablen werden nicht übersetzt? Inwiefern denn?
Hast du die Texte in Single-Quotes gesetzt?
Und ansonsten - Schau dir doch mal str_replace an, und schreib einfach Platzhalter in die Datei.

Autor:  Auric [ Sa 13 Feb, 2010 18:26 ]
Betreff des Beitrags:  Re: Performance

Harthas hat geschrieben:
Vielleicht irgendwas wie: SELECT SUBSTRING( login , 1 , 1 ) AS firstletter , count( acctid ) FROM accounts GROUP BY SUBSTRING( login ,1 , 1);
In logd hab ich's jetzt nicht getestet, sollte aber genau so eigentlich funktionieren.


Ich Spiel mal den besserwisser:
$this->bbcode_second_pass_code('', 'SELECT LEFT(login, 1) AS firstletter, COUNT(*) FROM accounts GROUP BY firstletter;')
So geht's noch ein bisschen eleganter.

Zum Editor:
PHP-Dateien sind auch nur Textdateien - wenn du schreibrechte darauf hast, kannst du sie auch dynamisch generieren bzw. anpassen. Wenn du also Daten als PHP-Array in einer PHP-Datei ablegst und bei bedarf einbindest, kannst du auch im selben Script die Datei selbst neu schreiben. Dafür muss dein Editor dann eben nur validen PHP-Code ausgeben.
Und jeder, der Zugriff darauf hat kann dir deinen Server in die Steinzeit schießen - das solltest du bedenken!
Das kann man zwar versuchen ab zu fangen, leicht wird das allerdings nicht!

Autor:  Anderswelt [ Sa 13 Feb, 2010 18:35 ]
Betreff des Beitrags:  Re: Performance

naja ich hatte von anfang an $h $d $o als variablen benutzt hinter denen ich farbcodes versteckt hab und die in der common verstaut hab, da ich den skin erst zu letzt mache und die texte dann gern mit 1 klick alle umfärben würd xD (jeah faulheit xD)

jedenfalls werden die variablen leider nicht übersetzt wenn ich sie aus der txt sauge (warum auch immer) x.x somal die texte ja dennoch in der output() ausgegeben werden .. eigendlich müssten sie übersetzt werden*schulter zuck*

jeedenfalls ist das mein problem wobei meine oben gepostete idee, wenn sie denn so funktioniert, besser gefällt.. ich bin noch am Googlen ob ich was entsprechendes find..^^


und zum editor: Ja die editier funktion soltlen auch nur moderatoren (denen die ich schon von meinen anderen servern kenne (langsam wirds viel mit der weil der 4. xD) ) und natürlich mir selbst zur verfügung stehen. Aber da vertrauen gut ist aber Kontrolle besser, wollt ich es eben so machen das nur und ausschließlich der Inhalt der von mir fest gelegten Outputs editierbar ist (mit entsprechendem Zensurfilter und replace sollte das dann kein problem sein, dass da nur saubere Texte bei rum kommen^^) aber wie gesagt.. das mit dem Teilweise editieren will mir noch nich so ganz in den Kopf^^


aber ich denke das sicherste, einfachste und benutzerfreundlichste währe wirklich die texte in der Datenbank ab zu legen und sie von dort zu holen :/

Autor:  Auric [ Sa 13 Feb, 2010 19:02 ]
Betreff des Beitrags:  Re: Performance

Variablen werden von PHP nur geparst, wenn der Text auch als PHP-Quelltext ausgeführt wird. Wenn du einfach nur Text aus einer Datei liest, wäre es ja auch wahnsinnig gefährlich, wenn alles was da drin steht einfach so ausgeführt wird. Noch dazu werden ja nicht alle Textdateien von PHP geschrieben. Wenn du Makros oder Platzhalter verwenden willst, musst du diese tatsächlich mit str_replace oder preg-Funktionen ersetzen. Man kann es auch durch eval jagen, aber das ist ganz und gar nicht schön.

Autor:  Anderswelt [ Sa 13 Feb, 2010 20:24 ]
Betreff des Beitrags:  Re: Performance

also folter ich dann jede Ausgabe die aus na txt datei oder db kommt mit str replace?

also ich versteh ja, dass man die variable dann durch nen `2 (bsp) ersetzen kann und dass diese trotz $h in der quelle angezeigt aber unverändert bleibt. aber ist es denn dann mäglich in der replace funktion wieder platzhalter zu benutzen um dann die variable gegen eine variable gegen einen farbcode zu tauschen? XD denn ansonsten könnt ich gleich einfach alle Datein umarbeiten und meine variablen durch Farbcodes ersetzen^^'

Autor:  Eliwood [ Sa 13 Feb, 2010 20:56 ]
Betreff des Beitrags:  Re: Performance

$this->bbcode_second_pass_code('', '$codeAusDerDatenbank = str_replace('$h', $h, $codeAusDerDatenbank);')

Seite 1 von 2 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/