使用单个innodb表,实现锁,防止游戏被刷物品或者其它资源!
2010-04-15 16:12
357 查看
webgame经常面临某个模块被多次并发提交刷物品或者经验金钱,通常使用把相关该改为innodb表加事务,但这样,会使数据库服务器内存消耗变得十分恐怖,实际使用一个表就可以实现锁了。
<?php
require('config/config.mysql.php');
/*
CREATE TABLE `lock` (
`uid` int(11) NOT NULL DEFAULT '0',
`lockvalue` int(11) DEFAULT NULL,
PRIMARY KEY (`uid`)
) ENGINE=InnoDB;
*/
$conn=mysql_connect($_mysql['host'], $_mysql['user'] , $_mysql['pass']) or die("Could not connect: " . mysql_error());
mysql_select_db('test2' ,$conn) or die("Could not connect: " . mysql_error());
function getLock($conn)
{
mysql_query("BEGIN",$conn);
$rs = mysql_query("select uid from `lock` where uid=1 FOR UPDATE;",$conn);
}
function realseLock($conn)
{
mysql_query("COMMIT",$conn);
}
getLock($conn);
//do something
realseLock($conn);
?>
<?php
require('config/config.mysql.php');
/*
CREATE TABLE `lock` (
`uid` int(11) NOT NULL DEFAULT '0',
`lockvalue` int(11) DEFAULT NULL,
PRIMARY KEY (`uid`)
) ENGINE=InnoDB;
*/
$conn=mysql_connect($_mysql['host'], $_mysql['user'] , $_mysql['pass']) or die("Could not connect: " . mysql_error());
mysql_select_db('test2' ,$conn) or die("Could not connect: " . mysql_error());
function getLock($conn)
{
mysql_query("BEGIN",$conn);
$rs = mysql_query("select uid from `lock` where uid=1 FOR UPDATE;",$conn);
}
function realseLock($conn)
{
mysql_query("COMMIT",$conn);
}
getLock($conn);
//do something
realseLock($conn);
?>
相关文章推荐
- 使用单个innodb表,实现锁,防止游戏被刷物品或者其它资源!
- 使用单个innodb表,实现锁,防止游戏被刷物品或者其它资源!
- 关于使用SharedObject来缓存游戏图片或者swf文件资源到客户端本地的研究
- 关于使用SharedObject来缓存游戏图片或者swf文件资源到客户端本地的研究
- 们只是「电脑玩物」 首页 实用技巧 免费资源 超好玩的游戏 软件推荐 IT技术 资讯 编程 其它 MVVM设计模式和WPF中的实现(四) 事件绑定 07net01.com 发布于 2015-10-08
- 使用遗传算法实现迷宫游戏(genetic maze)
- 使用行为树(Behavior Tree)实现游戏AI
- 使用VideoView 或者SurfaceView 实现视频播放功能
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【七】——实现资源的分页
- 使用PySide实现生命游戏
- Eclipse插件TFS的使用 类似SVN 但是功能更强大,适应就很好用,能防止冲突使用文档在资源中
- 如何查看/删除使用WANem或者其它时候的网关设置
- GDI对象和CDC的使用方法(防止资源泄漏)
- 使用jsp标签和java资源管理实现jsp支持多语言
- Silverlight游戏设计(Game Design):(十四)练习用游戏素材资源的获取及相关工具使用心得
- 使用HttpHandler 实现无页面退出和防止盗链
- 使用行为树(Behavior Tree)实现游戏AI
- 自定义View—使用clipPath或者BitmapShader实现圆角图片
- GDI对象的使用和防止资源泄露
- 使用FLEX 和 Actionscript开发FLASH 游戏—嵌入资源和增加游戏元素