Hirdetés
Új hozzászólás Aktív témák
-
Taci
addikt
válasz
martonx
#5067
üzenetére
Megvan a "bűnös": az ORDER BY.
SELECT DISTINCT *FROM feeds AS fJOIN feed_item_categories AS ficON f.feed_id = fic.feed_idJOIN categories AS cON c.category_id = fic.category_idWHEREc.category_id NOT IN (1,3,13,7,20)ANDf.feed_id NOT IN (101,456,3566,32345,56432,223444,344456)ORDER BY f.feed_date DESC LIMIT 4Ha benne van: Showing rows 0 - 3 (4 total, Query took 19.2113 seconds.)
Ha nincs benne: Showing rows 0 - 3 (4 total, Query took 0.0541 seconds.)Pedig indexelt a feed_date.
Amikor explain-nel megkérdezem, mi történik, ezt mondja:
table: f
type: index
possible_keys: PRIMARY
key: feed_date
rows: 298917
Extra: Using where; Using index; Using temporary; Using f...A "régi" lekérdezést miért nem lassítja be az ORDER BY?
SELECT * FROM feedsWHERE(feed_category NOT LIKE '%cat1%'OR feed_category NOT LIKE '%cat2%'OR feed_category NOT LIKE '%cat3%'OR feed_category NOT LIKE '%cat4%')ORDER BY feed_date DESC LIMIT 4(Nem pont ugyanazt csinálja, mint a felső, csak azért másoltam be, hogy meglegyen, melyik a "régi".)
0.3591 seconds
Egyértelműen látszik, mennyivel gyorsabb a JOIN-os megoldás, de az a baj, hogy, hogy kell az ORDER BY - vagy legalábbis az lenne a fontos, hogy a leszűkített (WHERE) rekordlista teljes tartalmát időrendileg csökkenő sorrendben kell visszaadnom, négyesével.
Ezért csináltam úgy már eredetileg is, hogy megvan a feltételek alkalmazása (WHERE), aztán a találati lista rendezése (ORDER BY), aztán az első 4 listázása.
Aztán következő lekérdezésnél ugyanígy, csak a már korábban kilistázott elemek kizárása (id NOT IN...).Tudnátok tanácsot adni, kérlek?
Új hozzászólás Aktív témák
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Kormányok / autós szimulátorok topikja
- exHWSW - Értünk mindenhez IS
- Kerékpárosok, bringások ide!
- Filmvilág
- Milyen autót vegyek?
- Androidos tablet topic
- Rezsicsökkentés, spórolás (fűtés, szigetelés, stb.)
- Samsung kuponkunyeráló
- ThinkPad (NEM IdeaPad)
- További aktív témák...
- Apple iPhone 14 Pro 256GB (Csak Esim), Kártyafüggetlen, 1 Év Garanciával
- Skull&Co. kemény tok Asus ROG Ally és Ally X gépekhez
- Samsung Galaxy A36 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- Dell Latitude 5420 - i7 1185G7 ,16-32GB RAM, 512GB SSD, jó akku, számla, 6 hó gar
- ELADNÁD IPHONE KÉSZŰLÉKED? ADD EL A MOBILESHARKNAK GYORSAN ÉS BIZTONSÁGOSAN!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


