AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken MySQL Indizes über mehrere Spalten
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL Indizes über mehrere Spalten

Ein Thema von 3_of_8 · begonnen am 9. Jun 2006 · letzter Beitrag vom 9. Jun 2006
Antwort Antwort
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
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: MySQL Indizes über mehrere Spalten

  Alt 9. Jun 2006, 10:38
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?):
UPDATE bowae_vars SET value='2WHERE userid=1 AND varname='_dialog_step'
Ja, der Index wird benutzt. Kann ich aus eigener Erfahrung berichten.
  Mit Zitat antworten Zitat
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
 
#3

Re: MySQL Indizes über mehrere Spalten

  Alt 9. Jun 2006, 11:03
Na dann passts ja. Denn UPDATEs kann man sich ja leider nicht explainen lassen...
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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz