Forum » Programiranje » sql slow
sql slow
![](https://static.slo-tech.com/stili/bel_rudis.png)
BRBR ::
SELECT DISTINCT ..... FROM tezaver_zunanji_spiski_detail d JOIN galery_1 g ON d.id_tezaver = g.id_tezaver WHERE NOT EXISTS( SELECT id_tezaver FROM tezaver_taxonomy tax WHERE (tax.term = 'Mesostigmatophyceae' OR tax.term = ......) AND id_tezaver = d.id_tezaver) GROUP BY g.id_galery,d.id_tezaver ORDER BY d.term LIMIT 0,201
Če dam proč group by in order by je super fast, če ne pa traja par minut. Kakšna misel ?
Never underestimate the power of idiots in large groups.
![](https://static.slo-tech.com/stili/avatar_gray.gif)
ReRMh ::
še nisi poskusil kaj s pomočjo chatgpt, nekaj predlogov bi že dobil? skoraj v vsakem drugem postu je omenjen...
![](https://static.slo-tech.com/stili/bel_rudis.png)
BRBR ::
Jaz imam eno misel. Kako sploh kaj delaš oz narediš če ne znaš nobenih osnov?
Brez tebe ne bi preživel, majkemi.
Never underestimate the power of idiots in large groups.
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Tody ::
Group by umaknes v zunanji stavek saj ti tam nič ne koristi. Ker rabis samo vrstice ki obstajajo oz ne ne rabis jih imeti sortirane... Drugače pa kak index pa bo.
![](https://static.slo-tech.com/stili/avatar_gray.gif)
FireSnake ::
Rešitev:
- definiraj šifrante
- namesto teksta iščeš po IDjih
- na ta stolpec daš index
in bi moralo letet
- definiraj šifrante
- namesto teksta iščeš po IDjih
- na ta stolpec daš index
in bi moralo letet
Poglej in se nasmej: vicmaher.si
![](https://static.slo-tech.com/stili/bel_rudis.png)
BRBR ::
Rešitev:
- definiraj šifrante
- namesto teksta iščeš po IDjih
- na ta stolpec daš index
in bi moralo letet
WHERE NOT EXISTS in zadevni texti, nimajo vpliva, leti. Samo group by part je problematičen.
join je na integer fieldih.
Never underestimate the power of idiots in large groups.
![](https://static.slo-tech.com/stili/avatar_gray.gif)
no comment ::
Group by umaknes v zunanji stavek saj ti tam nič ne koristi.
Group by je že v "zunanjem" stavku.
Razlika v hitrosti, nad katero se čudi OP, je zgolj zaradi "limit". Če hočeš imeti limit na sortiranem resultsetu mora engine narediti table scan, če nimaš ustreznega indexa.
Mimogrede, pri sql-u je kontraproduktivno bit preveč vzvišen, uporabi orodje, ki ti prikaže execution plan in se ti ne bo treba spraševati zakaj je nekaj počasno, ampak lahko takoj preideš na kako narediti hitreje...
Zgodovina sprememb…
- spremenilo: no comment ()
![](https://static.slo-tech.com/stili/bel_rudis.png)
BRBR ::
no comment je izjavil:
Group by je že v "zunanjem" stavku.
Razlika v hitrosti, nad katero se čudi OP, je zgolj zaradi "limit". Če hočeš imeti limit na sortiranem resultsetu mora engine narediti table scan, če nimaš ustreznega indexa.
Ne. Limit pustim, umaknem group by.39 vs 0.4 sec +/-.
Mimogrede, pri sql-u je kontraproduktivno bit preveč vzvišen, uporabi orodje, ki ti prikaže execution plan in se ti ne bo treba spraševati zakaj je nekaj počasno, ampak lahko takoj preideš na kako narediti hitreje...
2 posta gor.
Never underestimate the power of idiots in large groups.
Zgodovina sprememb…
- spremenil: BRBR ()
![](https://static.slo-tech.com/stili/avatar_gray.gif)
no comment ::
In zakaj rabiš group by, če imaš distinct?
Tisto ni execution plan.
A res ne razumeš, da če nimaš sorta, da bo select, ki prikaže prvih (katerihkoli) 200 zapisov MNOGO hitrejši od tistega, ki mora prikazati prvih 200 zapisov urejenega seznama (za to moraš najprej "videti" celotno tabelo)?
Tisto ni execution plan.
A res ne razumeš, da če nimaš sorta, da bo select, ki prikaže prvih (katerihkoli) 200 zapisov MNOGO hitrejši od tistega, ki mora prikazati prvih 200 zapisov urejenega seznama (za to moraš najprej "videti" celotno tabelo)?
![](https://static.slo-tech.com/stili/avatar_gray.gif)
klemenSLO ::
Uporaba ORDER By na polju ki ni indexirano lahko precej upočasni poizvdbo. Ko poizvedba ni zaključena z ORDER BY, bodo rezultati vrnjeni v vrstnem redu, v katerem so shranjeni v tabeli ali pa v kakršnem koli vrstnem redu, ki ga optimizator uporablja za dostop do podatkov. SPloh se to pozna če maš veliko vrstic.
Če je je tako sortiranje pri tebi ključno oz ga izvajaš večkrat poskusi dodati nek ustrezen idex in probaj ponovno in poročaj.
Če je je tako sortiranje pri tebi ključno oz ga izvajaš večkrat poskusi dodati nek ustrezen idex in probaj ponovno in poročaj.
Life is not measured in minutes, but in MOMENTS...
Zgodovina sprememb…
- spremenil: klemenSLO ()
![](https://static.slo-tech.com/stili/bel_rudis.png)
BRBR ::
Index je že na tem order by polju. Zgleda, da je nek generalen problem z bazo. .cnf file stuff.
Ker če skopiram podatke na lokalno bazo, sicer novejšo verzijo, naredi v 4s.
To da vzame vseh 500000+ recordov naj bi bilo sicer redek dogodek.
Ker če skopiram podatke na lokalno bazo, sicer novejšo verzijo, naredi v 4s.
To da vzame vseh 500000+ recordov naj bi bilo sicer redek dogodek.
Never underestimate the power of idiots in large groups.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Pomoč pri izdelavi MySQL poizvedbe... (strani: 1 2 )Oddelek: Programiranje | 5582 (3949) | urli |
» | mysql insert variablaOddelek: Programiranje | 683 (499) | Zimonem |
» | [SQL] Pohitritev izpisaOddelek: Programiranje | 3026 (1925) | kuall |
» | MySQL group byOddelek: Programiranje | 1039 (867) | vorantz |
» | SQL poizvedbaOddelek: Programiranje | 3308 (2653) | awy |