Avatar billede Slettet bruger
25. september 2018 - 16:21 Der er 5 kommentarer og
1 løsning

Alternativ til INNER JOIN

Hej

Jeg har en mysql database med 6000 test-produkter, hvor 50 af dem skal hentes og udskrives til min produkt-oversigt.

Min sql forspørgelse ser sådan ud:

select *  from categories

inner join product_categories
on product_categories.category_ref_id = categories.id

inner join products
on product_categories.product_ref_id = products.id

inner join product_prices
on product_prices.product_ref_id = products.id

limit 50


selv om jeg har sat min limit til 50, tager det alligevel rigtig lang tid for at hente data'en ned, da INNER JOIN gør processen langsom.

Findes der et bedre og hurtigere alternativ til Inner join?
Avatar billede arne_v Ekspert
25. september 2018 - 16:51 #1
Er der index paa alle de felter som der joines paa?
Avatar billede Slettet bruger
25. september 2018 - 16:54 #2
Mener du om der er primary key? Ja.
Avatar billede arne_v Ekspert
25. september 2018 - 17:10 #3
jeg mener om alle af:

product_categories.category_ref_id
categories.id
product_categories.product_ref_id
products.id
product_prices.product_ref_id
products.id

enten er primary key eller har index.

(jeg gaetter paa at alle .id er primary key, saa spoergsmaalet er om .*ref_id har index)
Avatar billede arne_v Ekspert
26. september 2018 - 15:53 #4
Hjalp det?
Avatar billede Slettet bruger
26. september 2018 - 16:44 #5
Ja det gjorde. Tak. Har indekseret alle ref-id’erne. Håber det er rigtigt. Den er i hvert fald hurtig nu. Er der andre ting jeg skal være opmærksom på?
Avatar billede arne_v Ekspert
26. september 2018 - 18:08 #6
Det er ihvertfald det vigtigste.

Jeg har skrevet lidt her:

http://www.vajhoej.dk/arne/articles/dbintro2.html

om index og andre relevante emner.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester