Hirdetés
- Austin F.: Hardverapró szűrő script 🛒
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- eBay-es kütyük kis pénzért
- Mr Dini: Mindent a StreamSharkról!
- gban: Ingyen kellene, de tegnapra
- Toomy: FOXPOST: régen jó volt, de már jobban jársz, ha elfelejted
- Luck Dragon: Asszociációs játék. :)
- Pajac: Windows XP még mindig letölthető
Új hozzászólás Aktív témák
-
InfiniteReality
őstag
válasz
InfiniteReality
#1042
üzenetére
Megoldottam úgy, hogy csak racionalizáltam a mezőket és minden mezőhöz megfelelőbb adattípust választottam, mint ami eddig volt (ezzel 1 mb-tal kevesebb lett a tábla mérete), illetve az olyan mezőkről amikre nem irányul sok lekérdezés illetőleg kevésbé befolyásolják a végeredményt, levettem az indexet (eddig minden mezőn volt index, ami miatt a beírás volt lassabb).
Lényeg, hogy végül hagytam az egész táblát egyben, nem csaptam szét évekre, mert a lekérdezés több erőforrást igényelt volna ha sikerül rendesen megírni, mint az, hogy a tábla egyben van. Olyan 162 ezer sora van jelenleg az érintett táblának. -
InfiniteReality
őstag
válasz
PazsitZ
#1053
üzenetére
Biztos csak elírás annak a részéről, aki ezt leírta. Vagy régi php/mysql verzióra vonatkozik (nálam mindkettőből 5-ös van).
Szinten mindenhol lecseréltem a num_rows-t affected_rows-ra és működik.Ez működik:
SELECT jatekos, sum(pont) FROM jateklista WHERE pont >='1' GROUP BY jatekosl ORDER BY 2 LIMIT 50Utána egy if mysql_affected_rows() > 0 van annak eldöntésére vannak-e eredmények vagy sem. Ezzel a paranccsal (és egyben lévő adatbázissal) bemegy abba az ágba, ahol ki kell írni az eredményeket.
(SELECT jatekos, sum(pont) FROM jateklista2005 WHERE pont >= '1' GROUP BY jatekosl) UNION (SELECT jatekos, sum(pont) FROM jateklista2006 WHERE pont >= '1' GROUP BY jatekosl) ORDER BY 2 DESC LIMIT 50
Ez az évekre szétdarabol adatbázisra készült és működik, de nem a várt eredményt hozza, nem azt amire szükségem lenne.
-
InfiniteReality
őstag
válasz
PazsitZ
#1051
üzenetére
Kell vagy nem, egy if (mysql_affected_rows() >0) paranccsal le van kezelve, hogy van-e a lekérdezésnek eredménye. Az első hozzászólásomban lévő mindkét lekérdezésnek van eredménye, az egyik jó, a másik hibás. Amiket beirtatok azoknak pedig nincs eredménye, de hibát sem okoznak...
-
InfiniteReality
őstag
válasz
ArchElf
#1046
üzenetére
Ennyire nem vágom mélyen a MySQL-t, esetleg leírnád hogyan állítsam össze a lekérdezést? Temp táblát nem szeretnék ehhez használni...
Ha ennyire nehéz az évekre bontott táblákból megoldani ezt a fajta lekérdezést, akkor hagyom egyben, de már 428ezer sort tartalmaz az adatbázisnak ez a táblája, s gondoltam az egyes évekre irányuló lekérdezések valamint az új beírások az aktuális évbe gyorsabbak lesznek, ha szétcsapom az egészet évekre... -
InfiniteReality
őstag
válasz
ArchElf
#1041
üzenetére
Kérdés, adott egy adatbázis, amit szétdobtam az egyik mező adatai alapján évek szerint külön táblákba (tehát minden év összes bejegyzése külön táblában van már).
Amikor az egész egyben volt, akkor az alábbi lekérdezés hibátlanul működött (a jatekosl mező tartalma ugyanaz mint a jatekos mezőé, de kisbetűsítve):
SELECT jatekos, sum(pont) FROM jateklista WHERE pont >='1' GROUP BY jatekosl ORDER BY 2 LIMIT 50
Az évek szerint szétdobott táblák esetén a következő lekérdezést alkalmaztam, hogy a fenti eredményt elérjem (csak 2 évet írok le, mivel a teljes időszak lekérdezését PHPban állítom elő dinamikusan, a hiba úgyis ugyanaz):
(SELECT jatekos, sum(pont) FROM jateklista2005 WHERE pont >= '1' GROUP BY jatekosl) UNION (SELECT jatekos, sum(pont) FROM jateklista2006 WHERE pont >= '1' GROUP BY jatekosl) ORDER BY 2 DESC LIMIT 50
A hiba pedig az, hogy minden játékos annyiszor szerepel, ahány évben beleesik a fenti lekérdezésbe. Nyilván valami alap dolgot rontok el, de remélem tudtok segíteni
Esetleg ha valakinek van "szebb" megoldása, megköszönöm. 
Új hozzászólás Aktív témák
- Házimozi belépő szinten
- Otthoni hálózat és internet megosztás
- Hogy is néznek ki a gépeink?
- Bluetooth hangszórók
- Androidos tablet topic
- Fujifilm X
- Fizetős szoftverek ingyen vagy kedvezményesen
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Plazma TV topic
- További aktív témák...
- RAM memória Crucial Pro OC Gaming 16GB DDR5 6400MHz CL32 Black - bontatlan, új
- Dell Latitude 7420, 14" FHD IPS kijelző, i7-1185G7 CPU, 16GB DDR4, 256GB SSD, W11, Számla, 1 év ga
- Corsair 64GB KIT DDR4 3200 MT/s CL16 Vengeance LPX - bonatlan, új
- Corsair 32GB KIT DDR4 3200MHz CL16 VENGEANCE RGB PRO SL Black - bontatlan, új
- LG UltraWide 49WQ95X-W monitor
- Mini Pc HP ProDesk 600 G2 G3 G4 /// 6-8. gen //// i3 / i5 /// garancia /// Budapest / MPL / Foxpost
- HIBÁTLAN iPhone 12 Mini 128GB Black-1 ÉV GARANCIA - Kártyafüggetlen, MS3633
- Apple iPhone 13 ProMax 256GB Kártyafüggetlen 1év Garanciával
- Apple iPhone 15 Pro Max 256GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! MSI B450M R5 5600X 16GB DDR4 512GB SSD RX 9060 XT 16GB Rampage SHIVA ADATA 650W
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

Esetleg ha valakinek van "szebb" megoldása, megköszönöm. 

