Jeg har en query. Som virker fint nok i mysql 5.x . Problemet er bare, at på det webhotel hvor jeg skal bruge den, der virker den ikke.På webhoteller er version 4.0.21.
Min forespørgsel ser sådan her ud: SELECT *,(SELECT sum_hits FROM tmp WHERE linkid=id) FROM links ORDER BY hits_month DESC LIMIT 10
Der er 2 tabeller. En hvor der står noget generelt om linksne (links) og en hvor der står noget om de enkelte hits. (tmp).
Er der nogen der ved hvad man kan gøre istedet? Jeg har prøvet med følgende query: Den er bare utrolig langsom i forhold til den anden: SELECT * FROM links LEFT JOIN tmp ON (links.id=tmp.linkid) ORDER BY hits_month DESC LIMIT 10
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
Jeg har lavet index på dem begge. Eller på den ene. da den anden allerede var primary key.
Faktisk ser den langsom sql sådan her ud.. Det andet var noget jeg havde lavet da jeg prøvede at lave et view og så joine på det: SELECT *,SUM(lh.hint) AS hsum FROM links_hint AS lh LEFT JOIN links AS l ON(l.id=lh.linkid) GROUP BY lh.linkid ORDER BY hsum DESC LIMIT 10
Den tager ca 4000ms at køre..
Hvor: SELECT *,(SELECT SUM(hint) FROM links_hint WHERE links_hint.linkid=links.id) AS total_hits FROM links ORDER BY total_hits DESC
tager ca 500ms at køre.
Jeg kan ikke lige finde på nettet om det er muligt at lave nested queries i mysql 4. er det det?
Mystisk. Som jeg læser de EXPLAIN's så burde join'en være hurtigst.
Synes godt om
Ny brugerNybegynder
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.