MySQL Datenbanken/Tabellen nach InnoDB konvertieren

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
pangu
Beiträge: 1348
Registriert: 15.11.2011 20:50:52
Lizenz eigener Beiträge: GNU General Public License
Wohnort: /proc/1

MySQL Datenbanken/Tabellen nach InnoDB konvertieren

Beitrag von pangu » 06.02.2012 17:31:01

Naaaabend,

wollte mal fragen ob jemand von euch schon mal eine komplett MySQL-Datenbank oder eben die einzelnen Tabellen nach InnoDB erfolgreich konvertiert hat und seinen MySQL-Server für die Verwendung der InnoDB-Engine umgestellt hat. Ich habe bisher dieses Tutorial gesichtet (http://log.n0q.org/tag/Debian) welches auch vom Datum her sehr aktuell scheint. Jedoch habe ich sowohl dort als auch hier (http://dev.mysql.com/doc/refman/5.1/de/ ... tions.html) über die InnoDB-Beschränkungen gelesen. Woanders las ich, dass man auf keinen Fall die User und Passwort und Host-Tabellen aus der mysql konvertieren sollte, da diese nicht für InnoDB geeignet wären. Ausserdem werden FULLTEXT Tables nicht unterstützt für InnoDB, das erschwert um einiges die Konvertierung. Ich habe mit diesen einfachen Befehlszeilen (http://technotes.twosmallcoins.com/?p=356) erstmal alles ausgelesen und in eine Datei geschrieben. Diese habe ich dann manuell editiert, nach FULLTEXT gesucht und bei zwei meiner Tabellen den Eintrag entfernt. So werden also diese zwei Tabellen, die FULLTEXT beinhalten nicht konvertiert. Ich stelle mir aber die Frage, ob es Probleme gibt, wenn diese zwei Tabellen weiterhin als MyISAM geführt werden, obwohl in meiner my.cnf als Engine=InnoDB gesetzt ist.

Selbstverständlich macht man vorher immer Backups mit "mysqldump", aber ich wollte trotzdem vorher mal hier reinhorchen und mir ggf. schon einige hilfreiche Tips einholen.

Ich erhoffe mir bessere Performance durch die Konvertierung und Nutzung der InnoDB-Engine.

Danke im Voraus.
Man gibt Geld aus, das man nicht hat, um damit Dinge zu kaufen, die man nicht braucht, um damit Leute zu beeindrucken, die man nicht mag.

Benutzeravatar
pangu
Beiträge: 1348
Registriert: 15.11.2011 20:50:52
Lizenz eigener Beiträge: GNU General Public License
Wohnort: /proc/1

Re: MySQL Datenbanken/Tabellen nach InnoDB konvertieren

Beitrag von pangu » 10.02.2012 21:41:59

Na wie auch immer, ich hatte mal auf einer Testumgebung meine Datenbank in InnoDB konvertiert (außer die mysql Datenbank selbst, das sollte man tunlichst vermeiden!) und die Engine auf InnoDB geschaltet und getestet. Leider hat es in meinem speziellen Fall keinen Performancevorteil gebracht. Das kann aber daran liegen, dass die Anwendung selbst schlecht programmiert ist, die darauf zugreift und die Abfragen startet.

Wollt's nur mal so zu meinem Posting hinzufügen :p
Man gibt Geld aus, das man nicht hat, um damit Dinge zu kaufen, die man nicht braucht, um damit Leute zu beeindrucken, die man nicht mag.

rendegast
Beiträge: 14272
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: MySQL Datenbanken/Tabellen nach InnoDB konvertieren

Beitrag von rendegast » 11.02.2012 08:52:58

http://de.wikipedia.org/wiki/InnoDB
Ist nicht "das andere" das Argument für InnoDB?

http://packages.debian.org/mysql-server
5.5 in experimental

Oder (nominell für squeeze und lenny)
http://www.mysql.com/downloads/mysql/#downloads
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
pangu
Beiträge: 1348
Registriert: 15.11.2011 20:50:52
Lizenz eigener Beiträge: GNU General Public License
Wohnort: /proc/1

Re: MySQL Datenbanken/Tabellen nach InnoDB konvertieren

Beitrag von pangu » 23.02.2012 09:35:35

Hallo Rendegast,

was genau meintest du mit deiner Aussage zu InnoDB? Ich hab's echt nicht verstanden :) was ist denn eurer Meinung nach empfehlenswert für 'ne Engine? Ich lese derzeit in einigen Tutorials von Mailservern, dass da oft InnoDB verwendet wird. Ich hab von einem Bekannten gehört, der mehrere MySQL-Datenbanken in seiner Firma verwaltet, dass er mit InnoDB schon einige Probleme hatte bei korrupten Tabellen herstellen. Da hat sich der ganze Restore-Vorgang sehr schwer erwiesen.

Im Internet habe ich ebenfalls sehr differenzierte Meinungen zu InnoDB vs MyISAM lesen können. Manche schwören auf die eine Engine, wogegen andere wieder diese vermeiden. Wenn ich mir zum Bleistift eine ispconfig3 anschaue, dann wird für dbispconfig MyISAM verwendet, wogegen für Roundcube InnoDB installiert und aktiviert wird. Hmm... Nach welchen Kriterien sollte ich mich denn nun entscheiden, wenn ich mal 'ne neue Datenbank erstelle?
Man gibt Geld aus, das man nicht hat, um damit Dinge zu kaufen, die man nicht braucht, um damit Leute zu beeindrucken, die man nicht mag.

rendegast
Beiträge: 14272
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: MySQL Datenbanken/Tabellen nach InnoDB konvertieren

Beitrag von rendegast » 24.02.2012 01:14:55

pangu hat geschrieben: Ich erhoffe mir bessere Performance durch die Konvertierung und Nutzung der InnoDB-Engine.
<-> das "andere" Argument
Ihr Hauptvorteil gegenüber anderen Storage-Engines für MySQL ist, dass Transaktionssicherheit und referenzielle Integrität über Fremdschlüssel gewährleistet werden.
...
InnoDB unterstützt Transaktionen, das heißt:
Auch
http://de.wikipedia.org/wiki/MySQL#Offizielle_Engines
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
pangu
Beiträge: 1348
Registriert: 15.11.2011 20:50:52
Lizenz eigener Beiträge: GNU General Public License
Wohnort: /proc/1

Re: MySQL Datenbanken/Tabellen nach InnoDB konvertieren

Beitrag von pangu » 24.02.2012 09:24:40

Ja gut, das hatte ich auch gelesen. Leider kann ich damit nicht viel anfangen, auch wenn ich etwas zu dieser Transaktionssicherheit weitergelesen hatte. Ich glaub mir fehlt hier das nötige Hintergrundwissen wie Datenbanken funktionieren :) Trotzdem danke dir.
Man gibt Geld aus, das man nicht hat, um damit Dinge zu kaufen, die man nicht braucht, um damit Leute zu beeindrucken, die man nicht mag.

Antworten