Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Magga: PLEX: multimédia az egész lakásban
- eBay-es kütyük kis pénzért
- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- balojazz: Szódakészítés üzembiztosan és olcsón! Figyelem, csak hardcore szódázóknak!
- Candy: AOOSTAR WTR PRO – NAS, alkoss, gyarapíts
Ú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_idfrom items_categorieswherecategory_id not in (1,3,13,7,20) anditem_id not in (117,132,145,209,211)
Showing rows 0 - 24 (768981 total, Query took 0.0232 seconds.)SELECT item_id, item_dateFROM itemsORDER 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_dateFROM itemsWHEREitem_id IN (select item_id from items_categories wherecategory_id not in (1,3,13,7,20) anditem_id not in (117,132,145,209,211))ORDER BY item_date DESC LIMIT 4Showing rows 0 - 3 (4 total, Query took 0.5749 seconds.)
Order By nékül:
SELECT item_id, item_dateFROM itemsWHEREitem_id IN (select item_id from items_categories wherecategory_id not in (1,3,13,7,20) anditem_id not in (117,132,145,209,211))LIMIT 4Showing 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_dateFROM itemsORDER BY item_date DESC -- <----WHEREitem_id IN (select item_id from items_categories wherecategory_id not in (1,3,13,7,20) anditem_id not in (117,132,145,209,211))LIMIT 4Persze ez itt a szintaktika nem helyes. Ahogy nézegettem, kb. ilyesmi módon lehetne helyesen lekérdezni:
SELECT item_id, item_dateFROM(SELECT item_id, item_dateFROM itemsORDER BY item_date DESC) AS iWHEREitem_id IN (select item_id from items_categories wherecategory_id not in (1,3,13,7,20) anditem_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
- Milyen videókártyát?
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Xiaomi 17 - még mindig tart
- A tajvani chipgyártóknak is beteszi a kaput a Hormuzi-szoros lezárása
- Call of Duty: Warzone
- Kerékpárosok, bringások ide!
- Samsung Galaxy A54 - türelemjáték
- Samsung Galaxy A56 - megbízható középszerűség
- Diablo IV
- További aktív témák...
- Samsung Galaxy S25 eladó, független, garanciális (ses.hu, 2028 júniusig)
- Asus TUF F16 FX607JU 16" QHD+ IPS i7-13650HX RTX 4050 16GB 512GB NVMe magyar vbill gar
- Apple Macbook Air 13,6 M4 10C CPU/8C GPU/16GB/256GB - Ezüst - HUN - mw0w3mg/a - 3 Ciklus 2+ év gari
- Vivo V50 Lite 8/256 5G Black Dual SIM + 90W charger - Új, bontatlan, független - 3 év garancia!
- EliteBook 8 G1i 14 AI 14" FHD+ IPS Ultra 5 235U 16GB 256GB NVMe ujjlolv IR kam gar
- 188 - Lenovo LOQ (15IRX10) - Intel Core i5-13450HX, RTX 5060
- ÚJ 20 méteres LED szalag adapterrel és távirányítóval eladó
- AKCIÓ! Intel Core i7 4790K 4 mag 8 szál processzor garanciával hibátlan működéssel
- 16GB DDR4 RAM modulok 3600Mhz több darab // Számla // Garancia //
- Apple iPhone 16 Plus 128GB Ultramarine használt, karcmentes 96% akku (266 ciklus) 6 hónap gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
