Mailinglisten-Archive |
Hallo Elmar, falls du das original Posting von Norbert gelesen hast wurden 11.459.572 Datensätze von 11.470.884 geändert und damit fast alle. Da bringt alles nix. MySQL ist selbst so schlau bei einem Update wie "update tblsignal set nStatus = 1" zu prüfen ob da ein Index verwendbar ist. Ob wird vor allem davon abhängig gemacht wieviel Datensätze im Verhältnis zu den Gesamtdatensätzen geändert werden müssen. Sind es extrem viel bei in Norberts Fall wird KEIN Index verwendet was auch logisch ist da der Mehraufwand des Index-Scans und der Positionierung in der Datentabelle größer ist als ein einfacher Scan über die Daten-Tabelle. Die von dir vorgeschlagene Bedingung würde die eigenintelligenz von MySQL verhindern und durch den Operator "<>" und "OR" eine Index-Verwendung fast komplett verhindern. Evtl. MySQL 5.1 kann damit etwas besser umgehen. Die Frage von Sebastian zur Art der Zeilebreite ist dagegen eine Überlegung wert. Tabellen mit "rowlength=fixed" haben den Vorteil das man hier immer in gleichen Blocklängen von Datensatz zu Datensatz navigieren kann was schneller sein kann - aber nicht immer schneller ist. Vor allem Tabellen lange Strings zwingen hier feste Zeilenlängen oft in die Knie: Der Overhead an zu lesenden Daten ist dann so groß das mehr IO Aktivitäten benötogt werden als man durch den Vorteil der gleichen Satzlänge an Aufwand spart. Nach meiner Erfahrung für Statistik Taellen - also oft lesen, selten schreiben (und darum handelt es sich bei Norbert) - lohnt sich das ganze bis zum Größenfaktor 2 gegenüber der dynamischen Satzlänge - sprich: Ist meine Tabelle mit fester Satzlänge mehr als doppelt so groß wie mit dynamischer Satzlänge bringt eine feste Satzlänge warscheinlich keinen wenn nicht sogar den gegenteiligen Effekt. Tabellen in denen häufig geändert wird, vor allem wo häufig Zeichenketten geändert werden profitieren dagegen in der Regel immer von einer festen Satzlänge. Gruß, Andreas -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive