Kom ihåg mig?
Home Menu

Menu


Vilket index är bäst vid koll av IS NULL?

Ämnesverktyg Visningsalternativ
Oläst 2007-10-15, 09:50 #1
Blackexs avatar
Blackex Blackex är inte uppkopplad
Medlem
 
Reg.datum: Jun 2006
Inlägg: 238
Blackex Blackex är inte uppkopplad
Medlem
Blackexs avatar
 
Reg.datum: Jun 2006
Inlägg: 238
Jag har en kolumn som är en VARCHAR(255). Nu vill jag ha ett index så att jag kan hitta alla värden som är NULL. Dvs

SELECT * FROM MYTABLE WHERE MYCOLUMN IS NULL

Kan man strunta i att indexera själva texten i MYCOLUMN, och endast indexera huruvida värdet är null eller ej, och på så sätt få ett mindre index?

Det jag *inte* vill göra är detta:
CREATE INDEX MYINDEX ON MYTABLE (MYCOLUMN)

Jag funderar på om det är möjligt att skriva:
CREATE INDEX MYINDEX ON MYTABLE (MYCOLUMN(0))
alternativt
CREATE INDEX MYINDEX ON MYTABLE (MYCOLUMN(1))

Är det någon som vet?
Blackex är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-10-15, 11:43 #2
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Tveksamt om det är standardiserat. Sök på "Partial Indexes". Hur som helst bör du ändå kolla upp exakt hur din SQL-databas fungerar. Vilken använder du?
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-10-15, 11:44 #3
Blackexs avatar
Blackex Blackex är inte uppkopplad
Medlem
 
Reg.datum: Jun 2006
Inlägg: 238
Blackex Blackex är inte uppkopplad
Medlem
Blackexs avatar
 
Reg.datum: Jun 2006
Inlägg: 238
Jag använder MySql.
Blackex är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-10-15, 19:54 #4
JLEs avatar
JLE JLE är inte uppkopplad
Flitig postare
 
Reg.datum: Jul 2007
Inlägg: 382
JLE JLE är inte uppkopplad
Flitig postare
JLEs avatar
 
Reg.datum: Jul 2007
Inlägg: 382
Enligt mysql.com så är det möjligt att göra ett index på en del:

Citat:
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[index_type]
ON tbl_name (index_col_name,...)

index_col_name:
col_name [(length)] [ASC | DESC]

index_type:
USING {BTREE | HASH}
Exempelvis: CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));

Update: Ja det borde gå som du beskrev
JLE är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-10-16, 14:34 #5
elofssons avatar
elofsson elofsson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2004
Inlägg: 881
elofsson elofsson är inte uppkopplad
Mycket flitig postare
elofssons avatar
 
Reg.datum: Jul 2004
Inlägg: 881
Kan du inte lägga till en extra kolumn i tabellen som talar om ifall att MYCOLUMN är NULL eller inte. Sedan kör du ett index på den extra kolumnen istället för direkt på MYCOLUMN?
elofsson är inte uppkopplad   Svara med citatSvara med citat
Svara


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 16:28.

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