- 20
- 0
- 约1.38千字
- 约 4页
- 2022-03-19 发布于浙江
- 举报
?
?
基于MYSQL的 网络游戏 多线程 数据库 服务器 设计与实现
?
?
游戏开发到后期,随之而来的是各种性能测试调优。前两天看两年前写的数据库服务器,那叫一个囧,当初设计是单线程的,也就是所有的数据库操作请求放入一个队列中,逐个取出来做数据库查询操作。虽然mysql 的性能很赞,但要是这样游戏有个几万人在线,数据库服务器肯定吃不消。得益于innodb 的行锁支持,很多数据库的请求都是可以被并行处理的,比如两个角色A 、B 同时登录,进行登录验证并且获取角色列表请求,角色A 和B 数据是完全不相干的,所有可以并行处理。
后期数据库改动可是个大工程,不过为了性能还是忍了,狂改了一个星期,才把所有的数据库操作搞定。
数据库操作优化从两个方面入手:
1. 多个工作线程,并行处理??脏数据
2. 数据库操作API 用预处理方式(mysql_stmt_* 系列函数)
这里多个线程并行工作不用多说,用预处理方式操作数据库,在同一个连接上再执行相同的操作时,mysql 省去了解析sql 语句的工作,直接传入参数执行查询,对于大量复杂的相同查询,用预处理方式节约不少。
?????????接下来讨论一下服务器的工作模式( 线程模型) 。考虑一下这样一种情况,同一个角色发送了两个请求,并且都是针对同一条数据操作,第一个写第二个读。那么为了保证数据的正确性,两个请求必须保证顺序执行。要是使
您可能关注的文档
- 基于java的超级玛丽游戏的设计与实现.docx
- 基于Java的连连看游戏设计.docx
- 基于Java的连连看游戏设计与实现.docx
- 基于java的银行牌号系统的设计与实现.docx
- 基于java的银行综合业务柜台系统设计与实现.docx
- 基于java的音乐网站的设计与实现.docx
- 基于Java的飞机大战游戏的设计与实现.docx
- 基于Java的飞机大战游戏的设计与实现论文.docx
- 基于java的魂斗罗的设计.docx
- 基于java网盘搜索的设计与实现.docx
- 钢筋混凝土桥盖梁加固施工技术.pptx
- 港口规模结构的核心要素与发展趋势.pptx
- 人教版高中英语必修二Unit1Cultural Heritage-Reading and Thinking课件.pptx
- 樊口大桥悬臂浇筑箱梁挂篮施工技术研究与实践.pptx
- 防水混凝土抗渗试验的必要性与实施原理.pptx
- 钢质门窗及旧柜资源化利用综合解决方案.pptx
- 粉煤灰烧结砖的原料构成与成型工艺体系.pptx
- 钢筋混凝土桥梁实用碳化模型研究.pptx
- 沪科版八年级上册数学习题课件 第15章 轴对称图形与等腰三角形 全章热门考点聚焦.pptx
- 沪科版八年级上册数学习题课件 第15章 轴对称图形与等腰三角形 专题9 等腰三角形中分类讨论的5种常见题型.pptx
原创力文档

文档评论(0)