Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 23. Februar 2016 14:23

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Umstieg AdoDB lite -> MySQLi nativ

CMSMS setzt bekanntermaßen AdoDB lite als Datenbank-Layer ein.

Jedoch wird dieser Layer nicht mehr weiterentwickelt und ist eigentlich auch nicht mehr wirklich erforderlich, da nur noch MySQL (respektive Maria-DB) genutzt werden kann (zum ehemaligen Dreigespann aus MySQL, Postgres und Sqlite). Zudem knabbert AdoDB lite ordentlich an der Performance - da werden Klassen erstellt und erweitert, Funktionen und Variablen überschrieben etc.

Damit verbaut man sich natürlich eine Menge Optionen, die man mit MySQLi nativ hätte. Ein Umstieg ist jedoch leichter als man denkt

   $db = cmsms()->GetDb();
   $dbid = $db->connectionId;
   $result = mysqli_query($dbid , 'select * from cms_content;');

In Zeile 1 holt man sich das AdoDB-Objekt. Zeile 2 liefert die Verbindungs-ID zur Datenbank. Und schon kann man sämtliche MySQLi-Statements (einschließlich Prepared Statements und Transaktionen) ausführen ($result enthält das Resultset-Objekt der Abfrage).

Denkt ihr da auch das, was ich denke?

Richtig - man könnte so CMSMS Schritt für Schritt auf MySQLi nativ umsetzen und damit einen erheblichen Performance-Gewinn erzielen, ohne den Zugriff auf die Funktionen von AdoDB (und damit die Kompatibilität) zu verlieren wink..

Danke für den Tipp, Jan!

Offline

#2 24. April 2016 11:38

DokuMan
probiert CMS/ms aus
Registriert: 26. November 2011
Beiträge: 51
Webseite

Re: Umstieg AdoDB lite -> MySQLi nativ

Hat das schon jemand durchgezogen? Wieviel Aufwand ist das?

Offline

#3 25. April 2016 11:33

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: Umstieg AdoDB lite -> MySQLi nativ

Die komplette Umstellung von CMSMS dürfte eine ziemliche Arbeit sein.

Ist aber möglicherweise gar nicht mehr in der Form erforderlich, siehe

https://cms-1.org/forum/viewtopic.php?pid=38550#p38550

Wenn ich es richtig verstanden habe, wird dabei die Klasse mysqli um die AdoDB-Funktionen erweitert.

Offline