杀掉mysql服务器_SELECT / UPDATE和SELECT / INSERT杀死MySQL服务器

我运行的服务器因其从我们的一款iPhone游戏中存储分数的请求而被杀死.我的意思是服务器无响应.

我真的只知道有足够的MySQL / PHP可以解决这个问题,所以我在尝试解决此问题时感到困惑.我确信这是可以优化的问题,因为我们有专用的服务器.我们每分钟仅处理300个请求.

基本上,我们会检查某人从其iPhone游戏中发布的分数(使用SELECT),以查看他们是否已有分数.如果他们这样做,并且他们的新分数更好,那么我们将执行UPDATE,否则我们将进行INSERT.语句如下所示:

$sql = “SELECT id,score,level FROM $table WHERE board=’$board’ AND name=’$name’ AND udid = ‘$udid’ AND fbuid = ‘$fbuid'”

UPDATE和INSERT语句如下所示:

$sql = “UPDATE $table SET score=’$score’, level=’$level’, country=’$country’, date=CURRENT_TIMESTAMP WHERE board=’$board’ AND name=’$name’ AND udid = ‘$udid’ AND fbuid = ‘$fbuid'”

$sql = “INSERT INTO $table(board, udid, fbuid, name, score, level, country) VALUES (‘$board’, ‘$udid’, ‘$fbuid’, ‘$name’, ‘$score’, ‘$level’, $country’)”

为了完整起见,这是表的定义:

CREATE TABLE $table (

id int(11) NOT NULL auto_increment,

board tinyint(4) NOT NULL,

udid varchar(45) default NULL,

fbuid bigint(20) unsigned default NULL,

name varchar(25) default NULL,

country tinyint(4) default NULL,

level tinyint(4) default NULL,

score decimal(10,0) default NULL,

date timestamp NOT NULL default CURRENT_TIMESTAMP,

PRIMARY KEY (id),

KEY scoreidx (score),

KEY udididx (udid),

KEY fbuididx (fbuid),

KEY boardidx (board),

KEY levelidx (level),

KEY countryidx (country)

) ENGINE=MyISAM DEFAULT CHARSET=latin1

我目前使用以下方式从PHP连接到MySQL服务器:

$conn = mysql_pconnect(DB_HOST,DB_USER,DB_PASSWORD,MYSQL_CLIENT_INTERACTIVE);

但是以前曾经使用过msql_connect,但是没有注意到它的改进.

任何有关如何优化此方法的指示,或指向描述我应该做什么的任何网页的链接,将不胜感激.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值