Kom ihåg mig?
Home Menu

Menu


Mysql, dubbla fält i en key

 
Ämnesverktyg Visningsalternativ
Oläst 2007-05-20, 05:12 #1
totoos avatar
totoo totoo är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2006
Inlägg: 730
totoo totoo är inte uppkopplad
Mycket flitig postare
totoos avatar
 
Reg.datum: Nov 2006
Inlägg: 730
Det är en grej som jag tycker är mysko. Men det blir väl så när man har lärt sig av vad folk har sagt och inte ifrån manualen...

Jag försöker alltid undvika att ha index som använder sig av fler än ett fält, främst för att jag aldrig har haft stenkoll på hur det påverkar mina sql-frågor vid olika situationer. Men nu vore det skönt att reda ut saker, för enligt explain fungerar det inte som jag har trott att den har gjort.

Låt säga att vi har ett index med två fält (f1 och f2).

Då har jag "fått lära mig" att detta index bara används i en query som använder båda fälten för att ta fram resultatet, alltså t.ex "select * from tabell where f1=1 and f2 > f1".

Men enligt explain på "select * from tabell where f1=1" så används mitt index här, trots att bara det ena fältet finns med i frågan.

Däremot, när jag kör explain på "select * from tabell where f2=1" så används inte mitt index, vilket gjorde mig mycket förvånad.

Om jag använder båda fälten i min fråga så används mitt index också, precis som det borde (oavsett vilken ordning de skrivs i... om det nu kan göra skillnad normalt)

Jag förstår inte varför mitt index inte fungerar om jag använder bara fält2...

Mitt index ser ut såhär

PRIMARY (f1, f2)

Jag förstår inte, och jag är för trött för att läsa manualen och därför hoppas på att få vakna och sedan få äta frukost till ett bra svar här.

Tack.
totoo är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 10:24.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017