Startseite

ExpressionEngine vs Wordpress

Robert Basic erwähnt, dass seine Index-Seite ohne ein bestimmtes WP-Cache-Plugin 165 SQL-Queries für den Aufbau benötigt. Eine unglaubliche Zahl!
512MB.net hingegen, das mit der unerreichten ExpressionEngine läuft, benötigt nur 27 Queries. Einschließlich aller Features am unteren Seitenrand.
Wie? Verrate ich vielleicht einmal an anderer Stelle… ;-)
[via ]

Musste mal gesagt werden…



19 Reaktionen zu "ExpressionEngine vs Wordpress"

  1. Sven Przepiorka
    Freitag, 13. Januar 2006, um 20:42 Uhr
    1

    Hi Marcus,
    danke für die Verlinkung. Mir fällt leider nur immer auf, dass du mein Weblog mit dem meiner Weblog-Software verwechselst. Mein Weblog hat keinen Namen, die Software heisst dagegen gupsi:media.

    Aber anscheinend wird es einfach nur Zeit, meinem Weblog einen richtig Namen zu geben.

    Gruss, sven

  1. Marcus
    Freitag, 13. Januar 2006, um 21:35 Uhr
    2

    Ich weiß, steht aber so in Deinem Feed ;-)
    Und ja, wird Zeit für einen Namen ;-)

  1. Sven
    Freitag, 13. Januar 2006, um 21:38 Uhr
    3

    In welchem Feed denn? Das muss in deinem Reader falsch eingelesen oder nicht automatisch geändert worden sein.

  1. Marcus
    Freitag, 13. Januar 2006, um 21:40 Uhr
    4

    Ok, erwischt!
    Ich hatte wohl - mangels eines richtigen Namens - selbst den Namen so vergeben… Ooops!

  1. kiesow
    Freitag, 13. Januar 2006, um 22:17 Uhr
    5

    ich komme mit einigen plugins auf 45 queries. der übeltäter dürfte also weniger WP selbst, sondern irgendeines der von robert eingesetzten plugins sein

  1. Jörg Petermann
    Freitag, 13. Januar 2006, um 22:20 Uhr
    6

    Wieviel dieser Zugriffe hälst Du für Normal und ab wann wird es aus Deiner Sicht kritisch?

  1. Marcus
    Freitag, 13. Januar 2006, um 22:28 Uhr
    7

    @Kiesow: möglicherweise.

    @Jörg: ich denke, es hängt ganz davon ab, in welcher Umgebung Deine Seite läuft. Hast Du einen eigenen Server, darfst Du Dir wahrscheinlich so viele Abfragen erlauben, wie Du willst.
    Bin ich auf einem Shared Server kommt es halt auf den Provider drauf an. Wieviele Domains er auf einen Server packt, sind Datenbanken und Webspace getrennt, Prozessor etc. pp.
    Meinem Provider ist es z.B. wichtig, dass möglichst wenig Verbindungen zur Datenbank auf- und abgebaut werden, da das anscheinend die meiste Leistung kostet.  Je mehr Abfragen pro Verbindung umso besser, sagt er.
    Ich denke, da kann man keine allgemeingültigen Aussagen treffen. Mich hat einfach nur der krasse Unterschied erstaunt.

  1. fa
    Freitag, 13. Januar 2006, um 23:22 Uhr
    8

    Das Problem hatten wir vor einigen Monaten bei Serendipity auch, dann wurde das mal generalüberholt, seitdem sinds wenigr, aber ich wiess jetzt nicht mehr, wieviele genau.

  1. DonKult
    Freitag, 13. Januar 2006, um 23:53 Uhr
    9

    Naja, ein bisschen hängts schon an der Blogsoftware (hier z.B. Wordpress oder pMaschine) immerhin ist die für ihre Datenbankengine zuständig. Aber meineserachtens sind auch 27 Queries zu viel. Ich als Programmierer hab gelernt, dass man bei Datenbankabfragen so wenige wie möglich stellen soll, dafür die Wenigen dann aber recht “kompliziert”, also mit JOIN, GROUP usw. Aber viele kennen sich damit leider nicht genug aus, um sie anstendig verwenden zu können. Und da mangelt es wohl bei den Plugins, den wenn ich bei Robert lese, dass ein Plugin mehr als 100 Abfragen schluckt, dann ist dass aber allerdeutlichst viel zu viel. Ich hab keine Ahnung wie WP aufgebaut ist und wieviele MySQL-Tabellen das hat, aber ich denke mit 100. Abfragen kann man sicher 10 mal komplett die Datenbank auslesen… Weiterer Nachteil bei den Plugins wird sein, dass einige Plugins die selben Abfragen stellen, da sie nichts voneinander wissen. Das einige Plugins einfach auch nur schlecht programmiert sind ist leider so (wohl der größte Faktor) und das wird sich dank gnadenloser Selbstüberschätzung seitens der Möchtegernprogrammier wohl auch nie ändern, wenn man so manche Foren ansieht...... mhh. Jetzt wird das Kommentar länger als der ursprüngliche Artikel und ganz nebenbei klingt es auch noch überheblich. Na Super ... :/ Naja, schieben wir lieber mal ein kleines Beispiel hinter: Bei dir werden die letzten 5 Einträge + Anzahl der Kommentare/Trackbacks pro Eintrag auf der Startseite ausgegeben. Lässt sich in 15 Abfragen fassen, passt aber auch in Eine, wenn man geschickt die einzelnen Tabellen untereinander verknüpft. Weitere wichtige Sache sind vorallem bei steigender Datenmenge Indexies. Gottseidank hilft MySQL einem dabei: Einfach die fragliche SELECT-Abfrage kopieren, dass Schlüsselwort EXPLAIN davor setzen und MySQL spuckt einem unteranderm aus, welcher Index am praktischsten wäre. Caching ist da natürlich auch eine spitzen Idee. Allerdings nur wenn auch anständig umgesetzt und meines erachtens ist das schwer nachzurüsten. Sowas muss die Templateengine übernehmen, die ist schließlich für die Ausgabe zuständig. Aber da kocht je jeder sein eigenes Süppchen, anstatt dass die das mal vereinheitlichen. z.B. ... Aber nungut, eigentlich gehts ja nur um Datenbankabfragen. Also: der langen Rede, kurzer Sinn: Weniger ist mehr, auch bei Datenbankzugriffen.
    P.S.: RSS-Kommentar-Feed zu Artikeln wäre auch hier (vgl. einfach-persönlich & basic thinking) ganz pratisch. :)


  1. Freitag, 13. Januar 2006, um 22:21 Uhr
    10

    Wer bis heute annahm, dass nur MT-Weblogs und Perl dem Server zu schaffen machen kann, der wird dieser Tage eines Besseren belehrt. Interessante Berichte bringen Erkenntnisse insbesondere für Wordpress-Fans. Wie bei Robert Basic im Weblog berichtet wird, hat die One...

  1. Marcus
    Samstag, 14. Januar 2006, um 00:07 Uhr
    11

    Da spricht der Fachmann :-)

    Zum Thema Abfragen auf dieser Seite wollte ich nur noch anmerken, dass in den 27 Abfragen nicht nur die fünf Artikel stecken, sondern auch die nächsten zehn, dynamische Links zu den letzten sechs Monaten, eine Statistik, die Blogroll mit dan favicons und noch die Linkeria, die auch mit der EE realisiert wurde (alles unten auf der Index-Seite).

    Ich kenne mich mit der Programmierung leider nicht so aus, aber ich denke mal, dass der Spagat sehr schwierig ist, einerseits ein extrem flexibles System wie die EE zu bieten und andererseits kompakte Datenbankabfragen.

    Zum Kommentarfeed hast Du recht, ich bin es nur nicht gewohnt, dass hier mal richtig diskutiert wird ;-) Mal schaun, was sich machen lässt, aber heute nicht mehr ;-)

  1. Perun
    Samstag, 14. Januar 2006, um 09:48 Uhr
    12

    Hallöchen,

    also ich nutze auch Wordpress 2.0 und ein gutes Dutzend Plugins und bei mir sind ganze 14 Queries :-)

  1. Pepino
    Samstag, 14. Januar 2006, um 12:12 Uhr
    13

    ähhh, mal ganz naiv gefragt: ihr findet 27 oder 47 DB-Queries wenig???

    Wie wäre es mal mit Caching? ... In einem Blog-System wird im Verhältnis zu den lesenden Abrufen sooo selten was geschrieben bzw. verändert, da könnte ich mit 27 (oder gar über 40) Queries keinesfalls leben…

  1. Marcus
    Samstag, 14. Januar 2006, um 16:40 Uhr
    14

    Wenn ich auf der Index-Seite alles cache, was es zu cachen gibt, dann sind es noch 13 Abfragen.

    Im übrigen verwehre ich mich - wie andernorts behauptet - , dass dieser Eintrag dem WP-Bashing diente. 1. kenne ich WP dafür zu wenig und 2. wird hier in der Regel überhaupt nicht gebasht!


  1. Freitag, 20. Januar 2006, um 08:19 Uhr
    15

    @DonKult: Ich gebe dir völlig recht. Ich denke auch, dass es an der unwissenheit untereinander liegt. Wenn man wüsste, welche Daten man auf einer Seite braucht, sollte man diese lieber am Anfang der Seite auslesen und dann in ein Array speichern.

    Man sollte sich UmtimateTagWarrior anschauen: bei jedem Post erfolgt ein Query (oder mehr?), um die Tags für diesen Post auszulesen. Ich fände es besser, wenn man am Anfang der Seite alle Tags von den 20neusten Posts ausließt (1 Query), diese in ein Array speichert, und dann an gegebener Stelle darauf zurückgreift. Man könnte z.b. die ID des Posts als Index des Arrays anlegen, somit hätte man später einen einfachen zugriff darauf.

    Nicht anders verhält es sich bei den Posts. Es wäre sinnvoll, wenn man alle Posts mit dazugehörigen Kommentaren am Anfang der Seite ausließt und dann in der loop.php nur noch ausgibt ...

    Ich denke, man könnte meinen Blog locker auf unter 10 Queries bringen. Nur leider kenne ich mich in der WP Api nicht so gut aus, um so etwas zu realisieren. Vielleicht werde ich mich damit mal näher beschäftigen ;)


  1. Freitag, 20. Januar 2006, um 17:21 Uhr
    16

    Ich habe den Artikel von Robert ein weiter ausgeführt, und bin mal in die Tiefen des Codes abgestiegen, um zu schauen, was da los ist mit Wordpress:

    ;)


  1. Dienstag, 31. Januar 2006, um 18:10 Uhr
    17

    Gibt es mittlerweile noch andere Lösungsvorschläge?

  1. DonKult
    Dienstag, 31. Januar 2006, um 22:58 Uhr
    18

    Hä? Wie meinst du das: “Lösungsvorschläge” ???
    Es gibt keine ultimative Lösung nach Schema F. Die Lösung ist für jeden Blog/jede Homepage individuell. Da hilft nur probieren, probieren und nochmal probieren. Welcher Software bietet mir dass was ich will und brauche ohne dass ich gleich einen Root-Server brauche. Danach solltest du erstmal gehen. Ob das eine System jetzt 1 Abfrage mehr oder weniger macht, macht alleine nicht so den Ausschlag. Das kann mit ein paar (sinnlosen) Funktionsaufrufen, Caching oder was-der-Geier-noch-alles wieder Null-und-Nichtig sein. Da gibts eine ganz einfache Regel für das Laden einer Homepage: Stell dir den Verbindungtyp eines Durchschnittsbenutzers von dir vor (z.B. ISDN. Modem ist inzwischen selten und DSL stark auf dem Vormarsch, da ist dann ein solcher Mittelwert meistens passend) und stell dir vor du wärst ein Benutzer. Wie lange würdest du warten bis die Seite sich aufgebaut hat bevor du auf Abbrechen drückst und verschwindest? Wenn deine Seite schneller läd ist es okay, wenn es länger dauert, solltest du zusehen, dass du sie optimierst… und das ist wieder davon abhängig wie deine Homepage/Blog aussieht. Die beste (und die schlecheste ~ je nach Skill) Performance wirst du beim selber programmieren bekommen, ansonsten sollten alle halbwegs verbreiteten Blogsysteme ihren Job erfüllen. Also, wie gesagt, alles einfach ausprobieren. Probieren kostet ja bekanntlich nichts. Jedenfalls meistens ;)

  1. Robert Hartl
    Dienstag, 11. April 2006, um 15:22 Uhr
    19

    Interessante Diskussion.
    Es scheint mir daran zu liegen, dass viele Plugins und teilweise WP-Befehle gleichartige Abfragen parallel starten.
    Wer sich damit auskennt und schreiben kann, wie man häufig vorkommende Abfragen optimiert, wäre sicherlich ein gefragter Mann.
    Daneben gibt es aber sicherlich auch Schnickschnack, den jeder Wordpress-Betreiber ohne Bauchschmerzen abstellen kann.

Kommentar schreiben

Kommentarvorschau:



Bitte das Wort aus der Grafik eingeben (Spam-Schutz):