Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   MySQL Indizes über mehrere Spalten (https://www.delphipraxis.net/71122-mysql-indizes-ueber-mehrere-spalten.html)

3_of_8 9. Jun 2006 09:49

Datenbank: MySQL • Version: variabel • Zugriff über: PHP

MySQL Indizes über mehrere Spalten
 
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?):
SQL-Code:
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. ;)

Gollum 9. Jun 2006 10:38

Re: MySQL Indizes über mehrere Spalten
 
Zitat:

Zitat von 3_of_8
Jetzt meine Frage: Wenn ich folgenden Query ausführe, wird dann der Index benutzt (oder geht das nur bei SELECTs?):
SQL-Code:
UPDATE bowae_vars SET value='2' WHERE userid=1 AND varname='_dialog_step'

Ja, der Index wird benutzt. Kann ich aus eigener Erfahrung berichten.

3_of_8 9. Jun 2006 11:03

Re: MySQL Indizes über mehrere Spalten
 
Na dann passts ja. Denn UPDATEs kann man sich ja leider nicht explainen lassen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz