Wenn Sie gleichzeitig schwere UPDATEs und INSERTs benötigen, benötigen Sie InnoDB
Wenn Sie eine Deadlock-Auflösung benötigen, benötigen Sie InnoDB
Wenn Sie eine Speicher-Engine benötigen, die sowohl Daten als auch Indizes zwischenspeichert, benötigen Sie InnoDB
Wenn Sie effektiv auf mehrere CPUs zugreifen möchten , benötigen Sie InnoDB ( und optimieren dies ).
Bitte beziehen Sie sich auf meine früheren Artikel auf InnoDB:
Feb 12, 2011
: Wie können Sie MySQL auf eine hohe InnoDB-Arbeitslast einstellen?
Apr 14, 2011
: Was sind die Hauptunterschiede zwischen InnoDB und MyISAM?
Aug 04, 2011
: Optimieren der InnoDB-Standardeinstellungen
Oct 05, 2011
: Die Abfrage wird in einigen neueren MySQL-Versionen lange ausgeführt
Dec 19, 2011
: Welche zuerst: MySQL-Version aktualisieren oder Speicher-Engine konvertieren?
Jan 09, 2012
: Gibt es überhaupt Probleme bei der Konvertierung von MyISAM zu InnoDB?
Jan 27, 2012
: Importieren der myisam 5.0-Datenbank in einen 5.5-Innodb-Server
Jan 18, 2012
: Die einfügungsintensive InnoDB-Tabelle verwendet nicht meine gesamte CPU
Jan 21, 2012
: Ist InnoDB Engine gegen Memory Engine auf dem neuesten Stand?
Jul 16, 2012
: Verminderte Leistung der gespeicherten Prozedur bei der Migration von MySQL Server 5.0 auf 5.5
Sie sagten, Sie hätten gehört, dass MySQL 5.5 schneller als MySQL 5.0 ist. Out of the Box, das stimmt nicht. Sie müssen MySQL 5.5 abstimmen, um eine hervorragende Leistung zu erzielen !!! Hier sind meine früheren Artikel zu diesem Thema:
Sie haben erwähnt, dass MyISAM schneller als InnoDB ist. Wenn das MyISAM viele breite VARCHAR-Spalten mit dem Standardwert ROW_FORMAT = Dynamic (Standard) enthält, kann dies die MyISAM-Leistung beeinträchtigen. Die Aussage, dass eine Speicher-Engine schneller als die andere ist, hängt von der Anwendung, dem Lese- / Schreib-E / A-Verhältnis und der Optimierung der Speicher-Engine ab.
Siehe meine Beiträge zu diesem Thema
Behebung Ihres Problems, ob Sie jetzt oder später zu InnoDB konvertieren möchten:
Im fünften Link, den ich bereitgestellt habe ( welcher zuerst: Upgrade der MySQL-Version oder Konvertierung der Speicher-Engine? ), Empfehle ich die Konvertierung zuerst. In Ihrem speziellen Fall würde ich jedoch empfehlen, später zu konvertieren. Der Grund ist einfach: Sie verschieben die Daten auf einen anderen Server. MyISAM-Tabellen sind sehr einfach zu portieren. Das Ausführen eines rsync oder scp von / var / lib / mysql ist zweckmäßiger (schneller) als das Konvertieren in InnoDB, da die Daten geringfügig (manchmal erheblich) groß sind, wenn sie als InnoDB vorhanden sind.
Es gibt zwei Dinge, die Sie tun müssen:
BRAUCHEN # 1
Wenn Sie rysnc / scp verwenden /var/lib/mysql
, überschreiben Sie / var / lib / mysql / mysql. Daher schlage ich vor, dass Sie Ihre Daten folgendermaßen verschieben:
BRAUCHEN # 2
Sie benötigen ein einfaches Skript, um MyISAM in InnoDB zu konvertieren. Führen Sie auf dem MySQL 5.5 DB Server Folgendes aus:
echo "SET SQL_LOG_BIN = 0;" > /root/ConvertMyISAMToInnoDB.sql
MYSQL_CONN="-u... -p..."
mysql ${MYSQL_CONN} -AN -e"SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name,' ENGINE=InnoDB;') InnoDBConversionSQL FROM information_schema.tables WHERE engine='MyISAM' AND table_schema NOT IN ('information_schema','mysql','performance_schema') ORDER BY (data_length+index_length)" > /root/ConvertMyISAMToInnoDB.sql
less /root/ConvertMyISAMToInnoDB.sql
Wenn Sie mit dem Konvertierungsskript zufrieden sind, melden Sie sich unter MySQL 5.5 bei mysql an und führen Sie es aus
mysql> source /root/ConvertMyISAMToInnoDB.sql
Versuche es !!!