Zur Navigation

Lohnt sich ein XAMPP-Update?

1 Ranma (Gast)

Als IT-Laie bin ich öfter mal nicht auf dem Laufenden. Ich habe darum erst kürzlich festgestellt, daß XAMPP die Datenbank auf MariaDB gewechselt hat. MySQL gilt als schnell, aber meine Erfahrung damit ist eher gegenteilig. MariaDB stammt von MySQL ab, ist also neuer und darum vielleicht schneller?

Aber andererseits verwenden nach wie vor so gut wie alle Hoster MySQL. MariaDB soll als Nachfolgerin von MySQL abwärtskompatibel sein, aber MySQL kann natürlich nicht aufwärtskompatibel sein. Also könnte ich ein für MariaDB erstelltes Skript vielleicht nie ausprobieren?

Möglicherweise ist es aber nicht immer so, daß eine neuere Version auch schneller ist? Eigentlich suche ich nur nach einer schnelleren Version von MySQL für mein XAMPP...
Ranma

18.05.2016 01:49

2 Jörg

MariaDB stammt von MySQL ab, ist also neuer und darum vielleicht schneller?

Beide werden weiterentwickelt, und dabei auch hinsichtlich Performance. Eine neuere Version von MariaDB ist sicher besser als eine ältere Version von MySQL.

Der Grund für den Fork von MariaDB war, dass die Entwicklung von MySQL nach der Übernahme durch Oracle nicht mehr ganz so offen verlief. Die größten kommerziellen Linux-Distributoren RedHat und Suse haben bereits auf MariaDB umgestellt (Debian favorisierte PostgreSQL, von daher stellte sich die Frage der Umstellung dort nicht)

MariaDB soll als Nachfolgerin von MySQL abwärtskompatibel sein, aber MySQL kann natürlich nicht aufwärtskompatibel sein. Also könnte ich ein für MariaDB erstelltes Skript vielleicht nie ausprobieren?

Mir sind bislang noch keine Unterschiede begegnet. Es ist natürlich nicht ausgeschlossen, dass die Entwicklung mit der Zeit in einzelnen Punkten auseinanderläuft. Wenn, wird das aber wohl eher neu hinzukommende Features betreffen.

Dieses Forum läuft übrigens auch auf MariaDB.

Möglicherweise ist es aber nicht immer so, daß eine neuere Version auch schneller ist?

Wenn es sich nur um ein Patch-Update handelt, d.h. wenn sich nur die dritte Versions-Ziffer ändert, wohl eher nicht. Performance-Steigerungen sind aber schon ein Schwerpunkt bei der Entwicklung von Datenbanken.

18.05.2016 21:53 | geändert: 18.05.2016 21:54

3 Ranma (Gast)

So, mir ist jetzt ein Unterschied begegnet. MariaDB ist viel weniger kooperativ!

Erst hatte ich die neue Version von XAMPP einfach über die alte installiert. Daraufhin wurden zwar noch alle meine Tabellen angezeigt, aber jeder Versuch darauf zuzugreifen wurde mit einer Fehlermeldung quittiert. Also löschte ich alle Tabellen und versuchte neue anzulegen. Das ging auch nicht und wurde wieder mit einer Fehlermeldung quittiert.

Weil es also nichts gebracht hatte, die neue Version einfach drüberzuinstallieren, löschte ich dann doch das gesamte Verzeichnis und installierte nochmal neu. Jetzt lassen sich Tabellen wieder erstellen. Aber es ist nicht mehr so bequem wie vorher.

Bei jeder Tabelle beschwert sich MariaDB erstmal über die Index-Spalte mit Auto_increment. Am besten funktoniert es, weder diese Option noch einen Index anzugeben. Wenn die Tabelle angelegt ist, dann läßt sich ein Index mitsamt der Option Auto_increment nachträglich anlegen. Und auch jeder weitere Index. Die Spalte mit dem PRIMARY KEY war bei MySQL-Datenbanktabellen unterstrichen. Bei MariaDB ist das nicht mehr der Fall. Aber vielleicht hat stattdessen, trotz Erfolgsmeldung, das Anlegen des PRIMARY KEY nicht funktioniert? Sollte die Spalte unterstrichen sein?

Bisher habe ich nur Tabellen für mein Wörterbuch wieder angelegt. Da sind FOREIGN KEYs sinnvoll wegen der normalisierten Tabellen. Ich versuchte darum auch die FOREIGN-KEY-Beziehungen anzulegen. Größtenteils ließ sich alles wie bei MySQL aus einem Menü auswählen, nur beim letzten Punkt wird kein Spaltenname angezeigt. Stattdessen leere Einträge. Beim nochmaligem Aufrufen der Beziehungsübersicht findet sich keinerlei Hinweis auf einen FOREIGN KEY. Also möglicherweise funktioniert das nicht.

Weiter bin ich noch nicht, darum habe ich noch nicht herausgefunden, ob sich überhaupt damit arbeiten läßt.
Ranma

20.05.2016 02:04

4 Jörg

Ich habe meine Entwicklungsumgebung schon vor einiger Zeit auf MariaDB umgestellt und bislang noch keine Probleme mit dem auto_increment. Problematisch könnte ein Wechsel der Datenbank-Enginge sein, wenn es sich um einen mehrspaltigen Index handelt. InnoDB kann z.B. im Gegensatz zu MyIsam einen Teil-Index nicht automatisch hochzählen. Ähnliches mag für XtraDB gelten. In so einem Fall kann man ja (auch unter MariaDB) MyIsam weiterverwenden.

Poste doch mal die SQL-Query, mit welcher du die Struktur (nicht die Daten) der betreffenden Tabelle(n) erstellst, sowie den exakten Wortlaut der Fehlermeldung(en)

20.05.2016 10:48 | geändert: 20.05.2016 10:49

5 Ranma (Gast)

Die Tabellen habe ich mit den bequemen Formularen von phpMyAdmin erstellt. Außerdem habe ich noch nie eine andere Engine als InnoDB verwendet.

Es kommt jedesmal die Fehlermeldung, daß nur eine Spalte mit auto erlaubt ist und es sich dabei um einen Index handeln muß. Ich kenne kein anderes auto für einen Index als auto_increment und wenn ich die Option entferne, dann klappt es ja. Es gibt auch keine zweite Spalte bei der ich das versucht hätte, sondern immer nur beim PRIMARY KEY. Die Spalte wird auch nicht mehr unterstrichen dargestellt.

Wahrscheinlich ist nicht auto_increment, sondern PRIMARY das Problem. Wenn ich nämlich die Anzeige der Indizes aufklappe, dann findet sich dort kein Index, egal welche und wieviele ich einstelle. Außer denen, die nachträglich hinzugefügt werden.

Das alte MySQL hatte nie so herumgezickt. Vielleicht ist das Löschen des Verzeichnises nicht ausreichend für eine gründliche Deinstallation gewesen?
Ranma

21.05.2016 02:26

6 Jörg

Die Tabellen habe ich mit den bequemen Formularen von phpMyAdmin erstellt.

Nicht jeder Fehler, der in phpMyAdmin auftritt, wird durch die verbundene Datenbank verursacht.

Die Spalte wird auch nicht mehr unterstrichen dargestellt.

Das ist in neueren Versionen von phpMyAdmin nicht mehr der Fall, stattdessen wrid neben dem Spaltennamen ein gelber Schlüssel angezeigt.

Wenn du dein XAMPP aktualisiert hast, dann wurde vermutlich auch dein phpMyAdmin mit aktualisiert? welche Version verwendest du denn jetzt?

In neueren Versionen hat sich das Handling etwas geändert - bei Auswahl des Dropdown-Feldes "Index" wird beispielsweise ein Popup geöffnet, in welchem die Eigenschaften des Indexes festgelegt und bestätigt werden müssen.

21.05.2016 17:26

7 Ranma (Gast)

Ich verwende jetzt XAMPP für Linux Version 5.6.21 Zwar wird noch eine neuere Version zum Download angeboten, aber ich gehe davon aus (und zwar generell, nicht nur bei XAMPP), daß die neueste Version am wenigsten stabil ist und noch am meisten daran herumverbessert wird.

Den gelben Schlüssel habe ich gefunden. Den finde ich nur deswegen unpraktisch, weil ich dafür generell das Farbschema jeder HTML-Seite akzeptieren muß. Normalerweise lasse ich das durch den Brauser überschreiben. Ich kann garnicht verstehen, wieso sich so viele Leute so viele Grausamkeiten von Webdesignern antun lassen. Dabei kann man sich nach einer Viertelstunde Beschäftigung mit Ergonomie und einmal die Eigenschaften richtig einstellen sehr viele Stunden Kopfschmerzen und brennende Augen ersparen. Das Design von phpMyAdmin ist da besonders grausam. Aber solange ich das vom Brauser überstimmen lassen kann, wäre ich damit zufrieden wenn phpMyAdmin seine eigentlichen Aufgaben erfüllt.

Ein Popup bei Einstellung eines Indexes ist mir nicht aufgefallen, abgesehen von denen, die mit Fehlermeldungen auftauchen.

Die Indizes sind vorhanden, weil ich sie nachträglich hinzugefügt habe. Der Versuch einen FOREIGN KEY hinzuzufügen scheitert allerdings sowohl mit dem Formular von phpMyAdmin als auch beim Eintragen einer entsprechenden Query in das SQL-Feld.

Weil einige Versionen zwischen dem und meinem letztem XAMPP liegen, wollte ich mich wenigstens über die höhere Geschwindigkeit freuen. Aber die gibt es auch nicht. Ich konnte zwar meine gesicherten Wörterbuchtabellen relativ schnell in die Datenbank laden, aber das war es dann auch. Ich versuchte als nächstes dreihundert Einträge aus einer nichtnormalisierten Tabelle in eine normalisierte Tabelle umzusortieren. Nach ungefähr dreißig Stunden strapazierte der Versuch nicht nur meine Geduld. Ich brach das Skript schließlich ab, weil es ein Gewitter gab. Einem Kumpel von mir hatte mal ein Gewitter seinen Computer getoastet. Das riskiere ich lieber nicht. Aber dreißig Stunden und immernoch nicht fertig mit nur dreihundert von ungefähr hunderttausend Einträgen ist einfach nicht schnell genug, um noch sinnvoll zu sein. Ich habe sogar den Eindruck, daß MariaDB sogar noch langsamer ist als alte Versionen von MySQL. Dabei sollen MySQL und MariaDB noch zu den schnelleren Datenbanken zählen.
Ranma

23.05.2016 01:16

8 Jörg

Ich verwende jetzt XAMPP für Linux Version 5.6.21

Die Versions-Nummer bezieht sich wohl auf die PHP-Version, die übrigen Pakete scheinen auf dem gleichen Stand, siehe unter dem Link "Was ist inbegriffen?":

https://www.apachefriends.org/de/download.html

Demnach hast du wohl phpMyAdmin 4.5.2, was aber auch auf der Startseite vonm deinem phpMyAdmin stehen sollte.

Ich habe hier phpMyAdmin 4.6.1 installiert

Ein Popup bei Einstellung eines Indexes ist mir nicht aufgefallen

Wenn ich bei der Erstellung einer Tabelle für das erste Datenfeld im Dropdown-Feld "PRIMARY" auswähle, öffnet sich dieses Popup, welches ich mit OK bestätigen muss. auto_increment läst sich dann problemlos auswählen. Klicke ich dieses Popup aber weg und mache bei auto_increment einen Haken rein, dann erhalte ich die folgende Fehlermeldung:

Falsche Tabellendefinition. Es darf nur eine AUTO_INCREMENT-Spalte geben, und diese muss als Schlüssel definiert werden

Der Versuch einen FOREIGN KEY hinzuzufügen scheitert allerdings sowohl mit dem Formular von phpMyAdmin als auch beim Eintragen einer entsprechenden Query in das SQL-Feld.

Da könnten der Query-Code sowie der genaue Wortlaut der Fehlermeldung ggf. weiterhelfen

23.05.2016 22:01 | geändert: 23.05.2016 22:02

9 Ranma (Gast)

Die Versionsnummer von phpMyAdmin hatte ich nicht sofort gefunden. Die mußte ich lange suchen, aber es ist tatsächlich 4.5.2

Beim PRIMARY KEY ist das genau die Fehlermeldung, die ich erhielt.

Beim FOREIGN KEY allerdings bekomme ich keine Fehlermeldung, sondern sogar eine Erfolgsmeldung, wenn man das angebliche Ausführen einer SQL-Query als Erfolg betrachtet. Es ist danach nur nirgendwo ein FOREIGN KEY zu finden.

Die Query habe ich ganz normal versucht:

ALTER TABLE Kombi ADD FOREIGN KEY Wort_anderes_id REFERENCES Wort (Wort_id);

Ich habe auch schon versucht den Spaltennamen statt in Klammern mit einem Punkt anzuhängen oder am Ende die Optionen ON DELETE CASCADE ON UPDATE CASCADE anzuhängen, aber das half alles nichts.
Ranma

24.05.2016 01:11

10 Jörg

ALTER TABLE Kombi ADD FOREIGN KEY Wort_anderes_id REFERENCES Wort (Wort_id);

Da fehlen noch die Klammern um den Namen der Schlüsselfeld-Spalte:

ALTER TABLE Kombi ADD FOREIGN KEY (Wort_anderes_id) REFERENCES Wort (Wort_id);

Bei mir zeigt phpMyAdmin unterhalb eine Fehlermeldung in rot an, wenn ich die Klammern weglasse

24.05.2016 11:59