Hirdetés
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Brogyi: CTEK akkumulátor töltő és másolatai
- GoodSpeed: Vanda ajándéka - 60 nap SkyShowtime előfizetés
- DarthSun: Retro kedvenceim 5. A P4 korszak a 423- tól a 478- ig
- SzDavid99: Van 20 perced? Akkor tanulj meg koreait olvasni!
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- eBay-es kütyük kis pénzért
- pechman8: 300B vs. GU50: a Herceg és a Koldus
Hirdetés
(használd a CYBSEC25PH kuponkódot további 20 ezer ft kedvezményért!)
Új hozzászólás Aktív témák
-
Taci
addikt
Meg lehet azt valahogy csinálni, hogy ne a subquery-ben lévő Select-re (select item_id) alkalmazott fő Select-re (select item_id, item_date) alkalmazza az Order By-t, hanem csak a fő Select-re?
Ahogy írtam is a bejegyzésben, amire itt válaszolok most, külön-külön gyorsak a lekérdezés részei:
select item_id
from items_categories
where
category_id not in (1,3,13,7,20) and
item_id not in (117,132,145,209,211)
Showing rows 0 - 24 (768981 total, Query took 0.0232 seconds.)SELECT item_id, item_date
FROM items
ORDER BY item_date DESC LIMIT 4
Showing rows 0 - 3 (4 total, Query took 0.0057 seconds.)És ha egyben van, akkor pedig az egészre nézve az Order By lassítja le:
Order By benne:
SELECT item_id, item_date
FROM items
WHERE
item_id IN (select item_id from items_categories where
category_id not in (1,3,13,7,20) and
item_id not in (117,132,145,209,211))
ORDER BY item_date DESC LIMIT 4
Showing rows 0 - 3 (4 total, Query took 0.5749 seconds.)
Order By nékül:
SELECT item_id, item_date
FROM items
WHERE
item_id IN (select item_id from items_categories where
category_id not in (1,3,13,7,20) and
item_id not in (117,132,145,209,211))
LIMIT 4
Showing rows 0 - 3 (4 total, Query took 0.0295 seconds.)
Ezért gondoltam arra, ha a Group By-t "le lehetne tudni hamarabb", akkor már kellően gyors lehetne az egész lekérdezés. Mert így a join-olt (ez így subquery-vel amúgy Join-nak számít?) táblán sokat időzik az Order By miatt - amire amúgy már az elején, az első Select-nél is meg lehetne csinálni, mert úgyis csak abban van a mező, ami alapján rendez, így kár a kibővített találati táblán rendezgetni.
Így lehetne optimális:
SELECT item_id, item_date
FROM items
ORDER BY item_date DESC -- <----
WHERE
item_id IN (select item_id from items_categories where
category_id not in (1,3,13,7,20) and
item_id not in (117,132,145,209,211))
LIMIT 4
Persze ez itt a szintaktika nem helyes. Ahogy nézegettem, kb. ilyesmi módon lehetne helyesen lekérdezni:
SELECT item_id, item_date
FROM
(SELECT item_id, item_date
FROM items
ORDER BY item_date DESC) AS i
WHERE
item_id IN (select item_id from items_categories where
category_id not in (1,3,13,7,20) and
item_id not in (117,132,145,209,211)) LIMIT 4
És ez már elég gyors is:
Showing rows 0 - 3 (4 total, Query took 0.0156 seconds.)Viszont itt van egy furcsaság:
Nálam a saját gépemen futtatva más eredményt ad a 2 változat. Az első (ahol a Group By a végén van) adja a helyes eredményeket, ez a legutóbbi pedig teljesen más rekordokat mutat, és nincsenek item_date alapján rendezve sem.VISZONT
DB Fiddle-ben ugyanazok az eredmények, tehát ott meg elvileg jó az új lekérdezés:
- Eredeti: [link] (item_id: 213, 212, 210,208)
- Új: [link] (item_id: 213, 212, 210,208)Erre az új fajta lekérdezésre, és a különböző eredményekre tudtok mondani valamit?
Esetleg finomítani ezen a változaton? (Ha pl. nem raktam bele az "AS i"'-t, akkor szólt, hogy "Every derived table must have its own alias". Így viszont a Where után lehet, hogy i.item_id kellene? Bár nem változtat az eredményen. Csak hátha ti láttok még benne valamit, azért írtam ezt a példát, hogy ez nekem csak Google-keresés eredménye. Hátha lehet csiszolni.)
Új hozzászólás Aktív témák
- Battlefield 6
- Elszipkázza az olvasókat a nagyobb weboldalaktól az AI
- PlayStation 5
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Samsung Galaxy A54 - türelemjáték
- PROHARDVER! feedback: bugok, problémák, ötletek
- Fotók, videók mobillal
- Azonnali VGA-s kérdések órája
- Spórolós topik
- Nvidia GPU-k jövője - amit tudni vélünk
- További aktív témák...
- ELADÓ - Egyedi szimulátor váz üléssel, monitor tartóval, géptartó polccal
- DJI Mavic Air 2S (Új-Aktiválatlan!)Fly More combo+Extrák
- Precision 7770 17.3" FHD IPS i7-12850HX RTX A3000 32GB 1TB NVMe ujjlolv IR kam gar
- Airpods 4 fülhallgató
- T14 Gen2i 14" FHD IPS i7-1185G7 16GB 512GB NVMe magyar vbill ujjlolv IR kam gar
- HIBÁTLAN iPhone 13 Pro 128GB Silver -1 ÉV GARANCIA - Kártyafüggetlen, MS3666 100% Akkumulátor
- GYÖNYÖRŰ iPhone 11 64GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS3121, 100% Akkumulátor
- AKCIÓ! ASUS ROG G16 (2025) G615LR 16 - Ultra 9 275HX 32GB DDR5 1TB SSD RTX 5070Ti 12GB WIN11
- Honor X6a 128GB, Kártyafüggetlen, 1 Év Garanciával
- iKing.Hu - Google Pixel 10 Tensor G5, 120 Hz OLED, tripla kamera-128 GB Használt, karcmentes Gari
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest