SELECT / UPDATE和SELECT / INSERT杀死MySQL服务器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SELECT / UPDATE和SELECT / INSERT杀死MySQL服务器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2036字,纯文字阅读大概需要3分钟。
内容图文
![SELECT / UPDATE和SELECT / INSERT杀死MySQL服务器](/upload/InfoBanner/zyjiaocheng/886/456d6e023a294186bf033c16c9f7cbd7.jpg)
我运行的服务器因其从我们的一款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
),
KEYscoreidx
(score
),
KEYudididx
(udid
),
KEYfbuididx
(fbuid
),
KEYboardidx
(board
),
KEYlevelidx
(level
),
KEYcountryidx
(country
)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
我目前使用以下方式从PHP连接到MySQL服务器:
$conn = mysql_pconnect(DB_HOST,DB_USER,DB_PASSWORD,MYSQL_CLIENT_INTERACTIVE);
但是以前曾经使用过msql_connect,但是没有注意到它的改进.
任何有关如何优化此方法的指示,或指向描述我应该做什么的任何网页的链接,将不胜感激.
解决方法:
MyISAM具有表锁而不是InnoDB行锁.您可以创建表的副本,将引擎更改为InnoDB,然后(在测试服务器上)使用mysqlslap或类似的压力测试工具来测试负载.
另外,非常重要:
ALTER TABLE tablename ADD INDEX(board,name,udid,fbuid)
MySQL一次只能使用1个索引,因此,在总是查询该特定组合时,您的几个“松散”索引没有太大的用处.
内容总结
以上是互联网集市为您收集整理的SELECT / UPDATE和SELECT / INSERT杀死MySQL服务器全部内容,希望文章能够帮你解决SELECT / UPDATE和SELECT / INSERT杀死MySQL服务器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。