Hej Christian
Ja, det lyder jo ikke helt logisk. Jeg har før haft glæde af dette afsnit af
manualen
http://www.mysql.com/doc/Q/u/Query_Speed.html når der var
hastighedsproblemer med join selects. Håber du kan bruge det til noget.
mvh
Bo Overgaard
"Christian Bruhn Gufler" <cbg@mfd.dk> wrote in message
news:3c95c52b$0$10685$4d4eb98e@news.dk.uu.net...
> Hej NG.
>
> Jeg har et, efter min mening, mystisk problem:
>
> Jeg har en stor hovedtabel på ca. 500.000 rows
> Fra denne er der relationer til flere undertabeller, herunder bla. en
postnr
> og kommunetabel.
>
> Problemet er at :
> 1.en søgning på ét indekseret felt går rigtigt hurtig (<1 sek)
> 2.En søgning på 5 indekserede felter (med relationen opretholdt til to
andre
> tabeller) går langsomt (6-8 sek)
> 3.En søgning på 5 indekserede felter (uden relationen opretholdt til to
> andre tabeller) går hurtigt (1-2 sek)
>
> Relationerne er begge på indekserede felter i hovedtabellen, og primær
> indeks i begge undertabellerne
> SQL-sætning er (simplificeret, og felter/tabeller hat ændrede navne) som
> følger
>
> 1.
> SELECT table_1.field_1 .. table_1.field_n , table_2.field_1,
table_3.field_1
> LEFT JOIN table_2 ON (table_2.key=table_1.key)
> LEFT JOIN table_3 ON (table_3.key=table_1.key)
> WHERE (table_1.field_z = 'Y') AND table_1.field_x LIKE 'abc%'
> ORDER BY table_1.field_x
> LIMIT 0,20
>
> 2.
> SELECT table_1.field_1 .. table_1.field_n , table_2.field_1,
table_3.field_1
> LEFT JOIN table_2 ON (table_2.key=table_1.key)
> LEFT JOIN table_3 ON (table_3.key=table_1.key)
> WHERE (table_1.field_z = 'Y')
> AND
> (
> table_1.field_x1 LIKE 'abc%'
> OR
> table_1.field_x2 LIKE 'abc%'
> OR
> table_1.field_x3 LIKE 'abc%'
> OR
> table_1.field_x4 LIKE 'abc%'
> OR
> table_1.field_x5 LIKE 'abc%'
> )
> ORDER BY table_1.field_x
> LIMIT 0,20
>
> 3.
> SELECT table_1.field_1 .. table_1.field_n
> WHERE (table_1.field_z = 'Y')
> AND
> (
> table_1.field_x1 LIKE 'abc%'
> OR
> table_1.field_x2 LIKE 'abc%'
> OR
> table_1.field_x3 LIKE 'abc%'
> OR
> table_1.field_x4 LIKE 'abc%'
> OR
> table_1.field_x5 LIKE 'abc%'
> )
> ORDER BY table_1.field_x
> LIMIT 0,20
>
>
> Hardware er en 2*850 MHz P3 - 2GB RAM - U160 SCSI drev, der kører FreeBSD
> Det er ENORMT frustrerende - hvad kan der være galt, og kan nogen hjælpe
> mig.
>
> MVH
> Christian Bruhn Gufler
>
>