Morgen.
Ich habe mir gerade mal von meinem PHP Script alle
DB-Querys ausgeben und die dann von meiner
DB explainen lassen.
Rausgekommen ist: Es wird nie ein Index benutzt (Ich hatte für jede Spalte Primary-Indizes benutzt)
Ich hab dann meinen PHP Code und die Indizes so optimiert, dass jetzt bei jedem in meinem Programm ausgeführten SELECT ein Index benutzt wird.
Ich habe jetzt einen Primary Index und zwei Zwei-Spalten Index über jeweils einen INT(10) und die ersten 10 Zeichen eines VARCHAR(25)s.
Jetzt meine Frage: Wenn ich folgenden
Query ausführe, wird dann der Index benutzt (oder geht das nur bei SELECTs?):
UPDATE bowae_vars SET value='2' WHERE userid=1 AND varname='_dialog_step'
Meine Tabelle sieht so aus:
SQL-Code:
CREATE TABLE `bowae_vars` (
`userid` int(10) unsigned NOT NULL default '0',
`varname` varchar(25) NOT NULL default '',
`value` varchar(25) NOT NULL default '',
KEY `USERID` (`userid`,`varname`(10))
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Anmerkung: Value ist deshalb ein VARCHAR und kein INT, weil der Wert kein int sein muss, sondern alles mögliche sein kann, von einem Float über einen String bishin zu meinen alten Socken.