» »

sql slow

sql slow

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.

ReRMh ::

še nisi poskusil kaj s pomočjo chatgpt, nekaj predlogov bi že dobil? skoraj v vsakem drugem postu je omenjen...

Utk ::

Jaz imam eno misel. Kako sploh kaj delaš oz narediš če ne znaš nobenih osnov?

BRBR ::

Utk je izjavil:

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.

no comment ::

Jah, dej stran 'LIMIT'... in bo oboje delalo počas.

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.

FireSnake ::

Rešitev:
- definiraj šifrante
- namesto teksta iščeš po IDjih
- na ta stolpec daš index
in bi moralo letet
Poglej in se nasmej: vicmaher.si

BRBR ::

FireSnake je izjavil:

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.

 krneki

krneki

Never underestimate the power of idiots in large groups.

no comment ::

Tody je izjavil:

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…

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 ()

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)?

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.
Life is not measured in minutes, but in MOMENTS...

Zgodovina sprememb…

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.
Never underestimate the power of idiots in large groups.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Pomoč pri izdelavi MySQL poizvedbe... (strani: 1 2 )

Oddelek: Programiranje
604722 (3089) urli
»

mysql insert variabla

Oddelek: Programiranje
6587 (403) Zimonem
»

[SQL] Pohitritev izpisa

Oddelek: Programiranje
252685 (1584) kuall
»

MySQL group by

Oddelek: Programiranje
5953 (781) vorantz
»

SQL poizvedba

Oddelek: Programiranje
163106 (2451) awy

Več podobnih tem