Mittwoch, 9. September 2015
Cmsmadesimple hat nichts gelernt
Cmsms hat rein nichts gelernt was Power und Datenbankhandling betrifft.
Nehmen wir als Beispiel nur einmal folgende Abfrage die stets vorkommt und dessen Ergebnis.
Allein wie dieser Teil der Abfrage: IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32)
zustande kommt ist programmiertechnisch abenteuerlich und extrem zeitaufwendig.
Dann wird ein ORDER BY auf die content_id vorgenommen im Vertrauen das Mysql sich einem existierendem Index bedienen wird der auf die ID gelegt ist - macht Mysql aber nicht sondern verwendet Filesort.
Ein SELECT * sollte misstrauisch machen und tatsächlich - hätte das Web 2000 Seiten würde Cmsmadesimple den Inhalt von 2000 Seiten komplett laden.
Das macht nur ein datentechnischer Volltrottel. Das Feld content ist vom Typ longtext und das kann 4,294,967,295 Bytes aufnehmen. In der Vergangenheit war es eine Nummer kleiner mit 65 KB und das reichte manchen Anwendern nicht aus.
So - nun stelle man sich 2000 Seiten nur mit 65 KB voll - ein Albtraum und erst recht mit 4GB pro Seite.
Und - solche Dinger sind kein Einzelfall !!
SQL wird in keinster Weise ausgenutzt - ein Fachmann würde sagen - die haben keine Ahnung.
Und vieles wird dazwischen noch mit PHP aufbereitet obwohl man es direkt mit der Abfrage hätte erledigen können.
Das ist Datenbankhandling mit einem Niveau unterhalb einer Fußmatte.
Ich hatte eigentlich gehofft das Cmsmadesimple nach den vielen Jahren etwas schlauer geworden ist aber V2 ist wieder nur eine zur geschlossene Tür zur Zukunft die man von rot mit schwarz übergemalt hat.
Abonnieren
Kommentare zum Post (Atom)

Hier noch einige Mysqlabfragen in denen kein Index benutzt wird, aber dafür Filesort.
AntwortenLöschenSELECT * FROM cms_module_news_fielddefs WHERE public = 1 ORDER BY item_order
SELECT * FROM cms_module_news_categories ORDER BY hierarchy
SELECT SQL_CALC_FOUND_ROWS DISTINCT S.id FROM cms_layout_stylesheets S LEFT JOIN cms_layout_design_cssassoc D ON S.id = D.css_id WHERE D.design_id = 2 ORDER BY D.item_order ASC LIMIT 0, 1000
SELECT design_id,css_id FROM cms_layout_design_cssassoc WHERE css_id IN (17,18,19,20) ORDER BY css_id