Szerző Téma: Mysql kód felgyorsítása  (Megtekintve 1000 alkalommal)

Mysql kód felgyorsítása
« Dátum: 2011. Augusztus 16. - 17:36:37 »
0 Show voters
Üdv megint...
ma már irtam egy ehhez kapcsolódó témát és zsoleszka egy nagyon jó megoldással állt elö ezt ismét szeretném megköszönni :) de ahogy foyltattam tovább egyre inkább nem megfelelö ez amegoldás nekem... én kitaláltam egyet de ez viszont nagyon lassú, valami ötlet ennek a felgyorsitására?
[pawn]   new houseid;
for(new i; i < MAX_HOUSES; i++)
{
   format(query, sizeof(query), \"SELECT HouseID FROM `Houses` WHERE `HouseID` = %d\", i);
   mysql_query(query);
   mysql_store_result();
   if(mysql_num_rows() != 0) // Ha a sor nem üres
   {
   mysql_free_result();
   }
   else
   {
   houseid = i;
   mysql_free_result();
   break;
   }
}[/pawn]
a cél az hogy mysql ben az új HouseID mindig a 0-hoz legközelebb álló szabad szám legyen.. például ha
1, 2, 3, 4, 6 foglalt akkor 5-el térjen vissza tehát a houseid 5 legyen :P
köszönöma válaszokat elöre is :D már ha lehetséges ez valahogy... : /

Nem elérhető Epsilon

  • 1854
    • Profil megtekintése
Mysql kód felgyorsítása
« Válasz #1 Dátum: 2011. Augusztus 16. - 17:56:23 »
0 Show voters
Mi célból akarod te ezt?

Mysql kód felgyorsítása
« Válasz #2 Dátum: 2011. Augusztus 16. - 19:26:25 »
0 Show voters
Hát olyasmi házrendszert szeretnék csinálni /csinálok mint a garhouse csak a felesleges dolgok nélkül és mysql-el kéne megoldani mindenképpen

Mysql kód felgyorsítása
« Válasz #3 Dátum: 2011. Augusztus 16. - 20:51:52 »
+1 Show voters
Aza baj hogy egy ciklusba ágyazott mysql_query elég lassú, még önmagmában is eltart egy darabig míg elvégzi a dolgát de még for ciklusban, az katasztrófa.
Mi lenne ha létre hoznál a módban egy változót?
[pawn]new bool:ValidHouseId[MAX_HOUSE];[/pawn]
Mikor törlésre kerül egy house id akkor ezt a változót is false értékre állítod.
Mikor új házat hoznak létre megkeresed pawnban a legkisebb értéket, a következõ képlettel:
[pawn]
stock LowHouseID()
{
    for(new i; i < MAX_HOUSE; i++);
    {
        if(ValidHouseId == false)

            return i; // for ciklus vége vissza térés a legkisebb üres house ID-vel.


    }


}


[/pawn]


Majd ezzel a visszatért értékkel hozol létre új sort mysql-ben.


Tehát egy változó tárolná mindig az érvényes house ID-ket és az érvényteleneket is, és pawnban gyorsabb megállapítani melyik house id üres mintha ezt az egészet mysqlben tennéd.




Bocsánat ha nem túl világos amit írtam de kicsit ittam, szal bocsánat.

Mysql kód felgyorsítása
« Válasz #4 Dátum: 2011. Augusztus 16. - 20:53:58 »
0 Show voters
Azta xD te okos ember vagy :D
köszi :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal