Mailinglisten-Archive |
Hallo Norbert, > InnoDB habe ich unter Windoof noch nirgends flott laufen sehen > und langsam kann MyISAM auch: InnoDB läuft bei mir auf einer 40 GB Datenbank unter Windows richtig flott. Die befürchteten Performanceeinbusen bei der Umstellung von MyISAM auf InnoDB waren nicht zu verzeichnen. Die Datenbank enthält einige Tabellen zwischen 10 und 30 Millionen Datensätze. Der benötigte Plattenplatz liegt je nach Daten beim Faktor 2 bis 2,5 von MyISAM Tabellen. Da InnoDB auch Nutz-Daten und nicht nur Index-Daten wie MyISAM cacht lohnt es sich hier die InnoDB Puffer etwas höher zu wählen als bei MyISAM (so Faktor 1,5 bis 2). Bei solch einer Umstellung sollte man prüfen ob anschließend noch MyISAM Tabellen verwendet werden auf dem Server und den Key-Buffer entsprechend reduzieren - der würde sonst brach liegen und nur RM verschwenden. > ALTER TABLE tblSignal CHANGE strTimeStamp dTimeStamp datetime; > Query OK, 16268486 rows affected (12 min 35.61 sec) > Datensätze: 16268486 Duplikate: 0 Warnungen: 0 > > ALTER TABLE tblSignal ADD KEY(dTimeStamp); > Query OK, 16268486 rows affected (19 min 27.44 sec) > Datensätze: 16268486 Duplikate: 0 Warnungen: 0 Das diese Statements langsam sind liegt an der Art und Weise wie MyISAM mit Strukturänderungen umgeht. Dazu baut MyISAM zunächst eine temporäre Tabelle auf in dem es die Daten aus der originalen Tabelle kopiert und baut danach im Fall von Index Änderungen alle Indices nacheinander neu auf. Seit 4.1 kommt es mir vor als ob er wenigstens ab und an so schlau ist und bestehende Indices nur umkopiert und nicht neu sortiert. Ab MySQL 5.0 bzw. 5.1 soll sich da noch einiges getan haben sowas solche banalen Änderungen schneller von statten gehen. Gruß, Andreas -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive