- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Apple MacBook
- Milyen nyomtatót vegyek?
- Stabilan induló BIOS-t kaptak a nem induló Socket AM5-ös ASRock alaplapok
- Gaming notebook topik
- OLED monitor topic
- Kormányok / autós szimulátorok topikja
- OLED TV topic
- RAM topik
- Azonnali notebookos kérdések órája
Új hozzászólás Aktív témák
-
Taci
addikt
válasz
sztanozs
#5140
üzenetére
Ha az általad írt lekérdezés által visszaadott össz-elemszámot szeretném megtudni (a belső limit nélkül - hogy később tudjak vele számolni, a belső limit meddig nyújtózkodhat - szóval a belső Select-et ezért veszem ki, plusz ugye nem kell rendezni sem (Order By), és a végén lévő Limit sem kell)), akkor jelen tudásom szerint azt így kérdezném:
SELECT COUNT(*) AS result_count FROM(SELECT i.item_id FROM items AS iINNER JOIN items_categories AS c ON i.item_id=c.item_idWHEREc.category_id NOT IN (1,3,13,7,20) ANDi.item_id NOT IN (117,132,145,209,211)GROUP BY i.item_id) AS tVan esetleg ennek hatékonyabb, gyorsabb, jobb módja?
Ezt találtam még:
SELECT COUNT(DISTINCT item_id) AS result_count FROM(SELECT i.item_id FROM items AS iINNER JOIN items_categories AS c ON i.item_id=c.item_idWHEREc.category_id NOT IN (1,3,13,7,20) ANDi.item_id NOT IN (117,132,145,209,211)) AS tItt elvileg a Distinct kiváltja a Group By-t.
Viszont sajnos Count-hoz a phpMyAdmin nem ír lekérdezési időt, így nem tudom, melyik a gyorsabb. Vagy jobb.
Ebben kérnék tanácsot.
Köszönöm. -
Taci
addikt
válasz
sztanozs
#5140
üzenetére
Na azért ez így hasít...
0.0096 secondsEzek szerint akkor nem kell "archiválni"? Akármekkorára is dagad a tábla, jobb egyben tartani? Vagy van egy határ valahol, ahol már szeletelni kell?
GROUP BY i.item_id, i.item_date
Itt miért kell az _id után a _date is, ha csak azért van a Group By, hogy egy-egy _id csak egyszer szerepeljen? (Csak szeretném megérteni.)Illetve még egy dolog jár ezzel a lekérdezéssel kapcsolatban a fejemben:
Ez egy nagyon jó és gyors lekérdezés. Azt hogyan lehetne legoptimálisabban megoldani, hogy ha a visszaadott rekordok száma kisebb, mint 4, akkor megnézze LIMIT 1000 helyett 2000-re is? Mert ha 2000-ben a talált rekordok száma nagyobb egyenlő mint 4, akkor onnan kell az eredmény, és akkor a következő görgetős lekérdezéshez is már a 2000-et kell használni, mert az 1000 nem volt elég.
Ehhez elég gyors ez a lekérdezés már, úgy gondolom, hogy kettő egymás után is beleférjen, ha kell.Hogy a gyorsabb/jobb?
1) Futtatom a query-t, aztán számoltatom php-ben a rekordok számát, és ha kisebb, mint 4, akkor jöhet az újabb query 2000-re?
2) Vagy előbb "üresen" csak egy Count, és az eredmény függvényében a valós (rekordokat visszaadó) lekérdezés?
3) Vagy van valamilyen COUNT-os utasítás (esetleg feltételes is) hozzá, amivel ezt még SQL-oldalon meg lehetne oldani? Ami akár egy lekérdezésen belül visszaadja, hogy az 1000-es limittel mennyi rekordot adna vissza, és ha 4-nél kevesebbet, akkor egyből futtatja 2000-re?Egy Count biztosan sokkal gyorsabb, mint az összes érintett mezőt visszaadni, és azt számoltatni, csak ezért jutott eszembe a kérdés.
Új hozzászólás Aktív témák
- Autóápolás, karbantartás, fényezés
- Konzolokról KULTURÁLT módon
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- Megérkezett a Samsung Galaxy A37 és Galaxy A57
- PlayStation 5
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Apple MacBook
- iPhone 12 mini - kicsi a bors, de bitang erős
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- AKCIÓ 03.30-ig!!! Intel Core ULTRA 9 285K +2x16GB 7600MHz Patriot Viper XTREME 5! (Bolti ár: 600e!)
- AKCIÓ 03.30-ig!!! Intel Core ULTRA 9 285K +2x16GB 7600MHz Patriot Viper XTREME 5! (Bolti ár: 600e!)
- 0 perces COOLER MASTER 650W MWE V2 minőségi tápegység! GAR/SZÁMLA (Te nevedre)! 12V: 54A!
- AKCIÓ 03.30-ig!!! Intel Core ULTRA 5 225F +32GB DDR5 kit +hűtött VRM-es alaplap! GAR/SZÁMLA!
- AKCIÓ 03.30-ig!!! Intel Core ULTRA 5 225F +32GB DDR5 kit +hűtött VRM-es B860 lap! GAR/SZÁMLA!
- GYÖNYÖRŰ iPhone 13 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS4404
- Surface 4 - 15" 2496 x 1664 ~2k touch, i7-1185G7, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- Lenovo ThinkPad T14 Gen1 Ryzen5 4650U Refurbished - Garancia
- PlayStation 5 Slim (lemezes) + kontroller 2027.12.24-ig garancia, számlával!
- 5G! Lenovo ThinkPad P14s Gen 4 Intel Core i7-1370P RTX A500 32GB 1000GB 1 év teljeskörű garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Na azért ez így hasít...
