GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: hegdavid95 - 2011. augusztus 16. - 17:36:37

Cím: Mysql kód felgyorsítása
Írta: hegdavid95 - 2011. augusztus 16. - 17:36:37
Ü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... : /
Cím: Mysql kód felgyorsítása
Írta: Epsilon - 2011. augusztus 16. - 17:56:23
Mi célból akarod te ezt?
Cím: Mysql kód felgyorsítása
Írta: hegdavid95 - 2011. augusztus 16. - 19:26:25
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
Cím: Mysql kód felgyorsítása
Írta: Zsolesszka - 2011. augusztus 16. - 20:51:52
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.
Cím: Mysql kód felgyorsítása
Írta: hegdavid95 - 2011. augusztus 16. - 20:53:58
Azta xD te okos ember vagy :D
köszi :D