Einzelnen Beitrag anzeigen

Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#1

MySQL Indizes über mehrere Spalten

  Alt 9. Jun 2006, 09:49
Datenbank: MySQL • Version: variabel • Zugriff über: PHP
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='2WHERE 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.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat