On 5 Apr 2003 22:04:54 GMT, Kristian Thy <thy@it.edu> wrote:
>> Du mangler at angive key length for dit index:
>>
>> INDEX ( head(100) , body(100) )
>Søreme ja. Det er jo totalt idiotisk at man skal det, når jeg vil have
>indekseret det hele.
Du blander ikke formålet med INDEX og FULLTEXT sammen?
Hvis du vil have et index, der rummer det hele for fx TEXT- og
BLOB-felter, så bliver dit index umådeligt stort, næsten samme
størrelse som datafilen (forudsat at TEXT/BLOB-feltet er det felt,
hvis data fylder mest - hvilket normalt er tilfældet).
Et index er jo blot en sortering af hele feltet (og ikke hvert ord for
sig), så for at indexet skal benyttes, vil du altid skulle matche i
starten af TEXT/BLOB'en - hvilket sjældent er hvad man har brug for
ved en søgning, hvorfor FULLTEXT så kan bruges.
Så: Hvorfor vil du have et helt index på et så stort felt (og så hele
feltet)? Laver du ofte søgninger på det helt præcise indhold af et
TEXT/BLOB-felt?
For mig lyder det som om, det udelukkende er et FULLTEXT-index, du har
brug for. Her bliver ord for ord indekseret, hvilket normalt er hvad,
man ønsker.
Tjek evt. eksemplet i starten af 6.8 MySQL Full-text Search:
http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#Fulltext_Search
Bemærk, de nøjes med FULLTEXT og ikke INDEX.
--
- Peter Brodersen