100 + MySQL Güncelleştirme sorguları Koşu.

0 Cevap php

I http://www.joemajewski.com/fortress bulunan "Kale" başlıklı bu oyun üzerinde çalışıyorum. Her neyse, bu oyuncular bir ordu kurmak ve afiş üzerinde bir yüksek rütbeli almak için onların istatistikleri yükseltmek bu tarayıcı tabanlı rol yapma oyunlarından biri.

Her 30 dakikada bir cron işi bazı güncelleştirmeler yapar, çalıştırmak için gidiyor. Bu oyunun her oyuncu (daha fazla insan katılmak gibi zamanla doğal olarak yükselmeye devam edecek) aracılığıyla döngüler, ve bazı istatistikleri günceller. Bu, herkese 1 ekstra bir dönüş verir .. vs gelir, gıda, ahşap, bakır, demir, dayalı onlara altın verir, artı onların sıralamasını günceller.

Tüm mırıldanmak-jumbo, biliyorum, ama gelin her oyuncu kendi güncelleştirme sorgusu olacak olmasıdır. Ben sadece üç üye ile komut zaman aşımına:

~ 3,5 ms: mysql_query () fonksiyonu ile yürütme zamanı güncellemeleri için yorumladı

mysql_query ile yürütme zamanı () fonksiyonu düzgün çalışmıyor: ~ 14 ms

Bu açıkça oyun 100 + kayıtlı üyemiz var bir zamanlar benim cron işi çok yavaş almaya neden olacak güncelleştirme sorguları olduğunu. Ben oyunun lansmanı iki hafta içinde 100 aktif oyuncu var umuyorum, ama birçok oyuncu birden fazla hesap oluşturabilir, bu yüzden bir kaç hafta sonra en az 200 üye bekliyoruz. 200 güncelleştirme sorguları, artı üyeleri sıralamak ve sıralamaları hesaplamak için ekstra zaman, büyük olasılıkla cron işi çalıştırmak için üzerinde 2 saniye sürer.

My question to you. Is there a faster way to do something like this? I tried adding a "START TRANSACTION" and "COMMIT" queries before and after the loop, respectively, but it's hard to gauge speed with just 3 members. Will transactions make the script better or worse? Any other way around this? Any help would be appreciated.

Benim savunma dinlemek için zaman ayırdığınız için çok teşekkür ederiz.

0 Cevap