Avatar billede kdjweb Nybegynder
11. november 2007 - 18:15 Der er 1 løsning

Muligvis MySQL Problem

Hej, eksperter.

Jeg får muligvis nogle problemmer med tiden med den kode jeg har.
I min kode buger jeg bare en while som indsætter deres "aktuelle pengesum" i brugertabellen og deres timelige indtjænst.
Lige nu bruger jeg bare et Cronjob som kører koden igennem vær time uden problemmer, men hvis nu der var 10.000 brugere ville den køre koden igennem 10.000 til 50.000 gange om dagen og ville sende 20.000 til 100.000 query's i timen.
Er der en løsning på dette? tabel struktur? smart metode?

Koden er meget enkelt(PHP):
$q = mysql_query("SELECT * FROM kasinos");

while($r = mysql_fetch_array($q)){
    $hour_inc = 0;
 
    // random m2 = ((m/100)*(50->100)/2)
    $hour_used = floor((($r['size']/100)*(rand(50,100)))/2);
 
    for($i = 0; $i <= $hour_used; $i++){
        $hour_inc += rand(100,1000);
    }

    $new_income = $hour_used.",".$hour_inc;

    $money_q = mysql_query("SELECT money FROM brugere WHERE ID = '".$r['ejer']."'");
    $money_r = mysql_fetch_array($money_q);
    $new_money = $money_r['money']+$hour_inc;
    mysql_query("UPDATE kasinos SET income = '".$new_income."' WHERE ID = '".$r['ID']."'");

    mysql_query("UPDATE brugere SET money = '".$new_money."' WHERE ID = '".$r['ejer']."'");
}

Hvis i får brug for min tabel struktur så bare sig til.
Avatar billede kdjweb Nybegynder
29. januar 2008 - 15:03 #1
åbent i mange mdr. lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester