WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Vilket index är bäst vid koll av IS NULL? (https://www.wn.se/forum/showthread.php?t=24329)

Blackex 2007-10-15 09:50

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?

kullervo 2007-10-15 11:43

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?

Blackex 2007-10-15 11:44

Jag använder MySql.

JLE 2007-10-15 19:54

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

elofsson 2007-10-16 14:34

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?


Alla tider är GMT +2. Klockan är nu 07:49.

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