45 Queries um eine Seite zu rendern?

  • Themenstarter Themenstarter ByeBye 8492
  • Beginndatum Beginndatum
B

ByeBye 8492

Moinsen,

ich brauche auf einer meiner Seiten ( über ein CMS gesteuert ) 45 Queries um alles darzustellen, dazu gehören News, Blöcke .. etc.

Man kann sagen, ich benutze für eine News cirka 3 Queries ( News auslesen, die Kommentaranzahl und dann noch die Themenstatistik ), dazu kommen dann noch die Blöcke und in den Blöcken auch noch ein paar Queries ... Das kommt mir alles ein bisschen viel vor, weil beim Innovision Board werden nur 8 Queries benötigt ... gut die Performance ist immer noch gut bei dem CMS ( braucht zum generieren cirka 0.04 Sekunden) Aber, wer weiß wie das ist, wenn mehr Leute dadrauf gehen.

Kosten Queries viel Renderingzeit?
Ansonsten ist es ja relativ egal *G*,a ber wenn sie viel Renderzeit benötigen ist es natürlich schlecht für die Gesamtperformance, sollte ich versuchen die Queries zusammenzufassen, oder geht das auch so?

EDIT: Wenn man Admin ist, wird die Seite aus 45 Queries gerendert, sonst "nur" aus 25 .....
Und zwar die hier:
select name from cms_module
select * from `cms_config`
select * from cms_block where side = 'l' and active = 1 order by weight asc
select * from cms_main
select name from cms_module
select * from `cms_module` where `active` = '1' and `inmenu` = '1' and `error` = 0 order by name asc
select * from cms_online where `gast` = '1'
select * from cms_online where `gast` = '0'
select * from cms_block where side = 'r' and active = 1 order by weight asc
select * from cms_block where side = 'c' and active = 1 order by weight asc
select * from cms_message where active = 1 order by expires asc
Delete from cms_online where `time` < '1092601588'
Select * from cms_online where `ip` = '127.0.0.1' or `name` = '127.0.0.1'
update `cms_online` set ip = '127.0.0.1', name = '127.0.0.1', gast = '1', time = '1092602188' where `ip` = '127.0.0.1'
select * from cms_main
select * from cms_user where `name` = ''
select * from `cms_news` where `allowed` = '1' order by time desc limit 10
SELECT * FROM `cms_news_comments` WHERE `id` = 16
select * from cms_news_topic where tid = '1'
SELECT * FROM `cms_news_comments` WHERE `id` = 13
select * from cms_news_topic where tid = '1'
SELECT * FROM `cms_news_comments` WHERE `id` = 9
select * from cms_news_topic where tid = '1'
SELECT * FROM `cms_news_comments` WHERE `id` = 6
select * from cms_news_topic where tid = '1'

Müsst ich mal gucken, ob man die noch irgendwie mit Joins ( müsst ich mri dann mal angucken ) komprimieren könnte *g*

EDIT2: Wie kann ich bei der Statistikausgebe, wieviel Rechenzeit PHP und wieviel Rechenzeit auf MySQL fielen?, das wäre interessant um zu gucken, wie die Queries sich auswirken
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

"viel" ist relativ. Es kommt ganz auf den Funktionsumfang einer Anwendung an, wieviele Queries benötigt werden. Ohne zu wissen, was dein CMS sonst noch ausgibt, halte ich für die Ausgabe einer CMS-Seite 45 Queries für zu viel.

Eine Maßgabe gibt es jedoch nicht, so dass hier jeder sein eigenes Befinden äußern wird und du somit um eine ordentliche Testphase mit sehr vielen Daten und konkurrenten Sessions nicht umhin kommen wirst.

Grunsätzlich sollte man allerdings bestrebt sein, möglichst Resourcen schonend zu programmieren, was aber nicht in jedem Fall bedeutet, aus 3 Queries eine machen zu müssen. Hier kommt es doch sehr stark darauf an, wie sinnvoll ein JOINEN tatsächlich ist und vor allem wie gut man SQL spricht :).

Ich bin eben mal über deine Queries geflogen:
Einige sind doppelt drin.
Viele lassen sich bündeln.

Ein drittel der geposteten Queries tuts wahrscheinlich auch.

cu Bloddy
 
Original geschrieben von bloddy newbie
Hallo,

"viel" ist relativ. Es kommt ganz auf den Funktionsumfang einer Anwendung an, wieviele Queries benötigt werden. Ohne zu wissen, was dein CMS sonst noch ausgibt, halte ich für die Ausgabe einer CMS-Seite 45 Queries für zu viel.

Eine Maßgabe gibt es jedoch nicht, so dass hier jeder sein eigenes Befinden äußern wird und du somit um eine ordentliche Testphase mit sehr vielen Daten und konkurrenten Sessions nicht umhin kommen wirst.

Grunsätzlich sollte man allerdings bestrebt sein, möglichst Resourcen schonend zu programmieren, was aber nicht in jedem Fall bedeutet, aus 3 Queries eine machen zu müssen. Hier kommt es doch sehr stark darauf an, wie sinnvoll ein JOINEN tatsächlich ist und vor allem wie gut man SQL spricht :).

Ich bin eben mal über deine Queries geflogen:
Einige sind doppelt drin.
Viele lassen sich bündeln.

Ein drittel der geposteten Queries tuts wahrscheinlich auch.

cu Bloddy

Man kann viele der Online Queries zusammenwürfeln, aber die der Comment Funktion zum Beispiel nicht ...weil die Commentdate per include rangeholt wird.

Achso zum Funktionumfang... der ist unter
http://www.optima-design.de/optima_2/ einsehbar.

Welche Queries könnte man denn noch zusammenfassen?

Erstmal sollte ich es vielleicth zuende schreiben und dann versuchen die Queries zusammenzufassen.

Wieviel Queries braucht zum Beispiel PHP-Nuke um eine Seite zu rendern?

EDIT: Ein Problem, bei den meisten Queries ist halt, das sie Versetzt aufgerufen werden, also am Anfang und dann am Ende... das heisst sie sind dann manchmal nicht mehr verfügbar.
Zum Beispiel die Blöcke, dort wird erst die Linke Seite gemacht, dann kommt die Mitte ( Separat von der Linken, um die Templates net durcheinander zu bringen ) und dann kommt Inhalt und dann die rechte Seite....


Naja jut, ich könnte Versuchen in Version 2.0 ein Cache System zu entwickeln, aber erstma werde ich es dann wohl so versuchen zu vermarkten *G*, mehr oder weniger....
 
Zuletzt bearbeitet von einem Moderator:
mmh, was mich noch interessieren würde, wie könnte ich so einen Massentest machen

Will ja nicht das meine Kunden später nur bessere BetaTest sind ... das passiert so schon oft genug ...

Habe mir schon nen System ausgedacht wie ich oben genannte Queries um 8 Reduzieren kann :), indem ich die Daten einfach in ein Array einlesen, und dann die Daten aus dem Array abrufen.

Leider bleiben die ganzen Restlcihen Queries alle noch, aber erstma werde ich das Ding fertig machen und dann geht es an "Fein" Tuning, sobald sich das System etwas verkauft, werde ich ja auch Feedback kriegen, wo die Schwachpunkte darin liegen.

Bisher hatte ich halt immer gute Renderzeiten von 0.03 ( ist denke ich mal Akzeptabel oder )

EDIT: ich denke mal es ist ein Einsparpotenzial bis auf cirka 10-16 Queries je Gerenderte Seite möglich, denke ich mal, hängt natürlich ab, was alles dargestellt werden soll ....
 
Zuletzt bearbeitet von einem Moderator:
mmh, was mich noch interessieren würde, wie könnte ich so einen Massentest machen

Will ja nicht das meine Kunden später nur bessere BetaTest sind ... das passiert so schon oft genug ...

Wieviel Kunden erwartest du denn?

Sage Datum und Uhrzeit, ....es sollte doch mit dem Teufel zugehen, wenn du hier nicht genug Leute zusammenbekommst, die gleichzeitig die DB belästigen....ich bin dabei:-)
 
Original geschrieben von Marvin Schmidt
1. Klick - ist vielleicht ganz interessant für dich.
2. Beim "DB-Belästigen" bin ich auch dabei.
3. Weder HTML noch CSS ist valid.

Es war HTML Valid .... bis da jetzt ... aber nu muss immer diese PHPSESSID hintersein muss, ansonsten müsste es eigentlich HTML Valid sein ... wie kriege ich die "PHPSESSID" HTML Valid?
 
Zuletzt bearbeitet von einem Moderator:
Original geschrieben von fatalus
PHPSESSID ist valide....das Ampersand davor nicht...das muss als &amp;amp; geschrieben werden.

Das & habe ich halt nicht davor geschrieben, dass ist ja das Problem ...., das wird wohl auch da mit generiert ....
 
So, nachdem das mti dem HTML VALID net mehr get ... ist mri dann auch relativ egal :ugly: müssen die Buttons halt bis es wieder geht raus habe ich nun noch ne Frage, kann man diese beiden Queries zusammenfassen:

select * from `cms_statistik` where `time` > '1072915261' Zieht alle Besucher des Jahres raus
select * from `cms_statistik` where `time` > '1092607201' Alle Besucher eines Tages

Gehen diese Beiden irgendwie zusammen?
 
Zurück