mmofacts.com

Erfahrungen mit mysqli_*

gepostet vor 19 Jahre von KoMtuR
Ich wollte mal eure Erfahrungen mit mysqli wissen, weil ja viele meinen, dass es so toll sei. Also ich hab mir das mal angeschaut und mal ein paar Tests gemacht zwischen mysql_* und mysqli_*:

Wenn ich den gleichen phpcode nehme und nur die Funktionen von von mysql ersetze kommt ungefähr die gleiche Aufrufszeit raus. Natürlich hab ich in dem Moment noch nciht das Objekt erstellt, sondern einfach die prozeduralen Funktionen genommen. Ich habe diesen Test dann mal mit einem mysqli-Objekt versucht und siehe da, mysql ist schneller. Ok das waren nur einfache 10.000 Selectanweisungen und Ausgabe der ausgelesenen Zeilen.

Dann hatte ich versucht das Preparequery zu nutzen, aber dies hatte auch nicht den erwünschten Erfolg gebracht (keine spürbaren Veränderungen).

Der letzte Test war der Interessanteste. Mit mysqli kann man ja multiquerys machen (bekannt schon aus phpmyadmin). Siehe da nun kommt man der Sache schon etwas näher, zumindest auf meiner Testumgebung. Ich hab einfach mal die normale mysql-Datei genommen und die Durchläufe auf 100.000 erhöht. Bei der mysqli-datei hab ich die gleiche Anzahl genommen und nur halt anstatt 100.000 ein Query zu machen, hab ich 100.000 mal eine Zeichenkette angehängt und dann ein einzigstes Query gemacht. Folge daraus war diese: 67 Sekunden mysql und 2.6 Sekunden mysqli (getestet mit Zend Profiler)

Ist dies die einzigste wirkliche Verbesserung, wenn man diese Funktionen im Browsergame nehmen will). Ich mein diese prepareQuerys sind schön und gut, wenn man schreibfaul ist, aber so einen Geschwindigkeitsvorteil hab ich nicht bemerkt.

Wie sind eure Erfahrungen in dieser Erweiterung und was überzeugt euch dabei, Diese zu verwenden? Vielleicht hab ich ja noch nicht alle Vorteile erkannt.
gepostet vor 19 Jahre von Gambler
Ist ja wohl klar dass die Klasse langsamer als ne Prozedur ist. Das ist immer so. Also ich hatte mit prepared statements einen Geschwindigkeitszuwachs von 25% gegenüber ohne.
Das ganze wurde in einer Schleife mit einer Tabelle von 3Mio Datensätzen getestet, davon ca 100.000 ausgewählt.
MySQL 5 hat außerdem jetzt nochn paar schöne neue Sachen mehr
gepostet vor 19 Jahre von KoMtuR
Jo aber nun ist wieder die Frage, ob ich prepared statements nehmen sollte, um sql injection zu verhindern oder doch lieber stored procedures.

Das es mit Obejkten und php langsamer wird war mir schon klar, aber vielleicht gibt es irgendein Punkt an mysqli, den ich noch nicht kenne und der auch erwähnt werden sollte.

Wollte eigentlich ne Diskussion hervorrufen, ob nun der Umstieg lohnt, wenn man Möglichkeit hat auf nem System mit php5 zu arbeiten, oder ob es da auf die Projektskalierung ankommt und man die Vorteile erst in großen Dimensionen spürbar merkt.

Es könnte ja auch den Entwicklern ein Überblick geben, die sich damit noch nicht beschäftigt haben
gepostet vor 19 Jahre von The_Alien
Ich bin auch schon länger am überlegen um zu steigen (würde das ganze dann aber über Funktionen nutzen da ich OOP nicht sonderlich mag) aber mir konnte bisher auch keiner Erfahrungswerte nennen. Angeblich soll es ja halt schneller sein weil es die abwärtskomp. nicht hat und somit weniger "Ballast". Aber ich kam leider auch noch nicht dazu mal Tests zu machen. Und so viele prepared Statments würden bei mir sowieso nicht anfallen sodas es als einzigster Grund zu wenig wäre.

Auf diese Diskussion antworten