单机游戏数据库探讨(MySQL嵌入式服务器的使用)(未完)

以前玩单机游戏,总会对单机游戏的目录结构作探讨。

通常,游戏的存储数据都会存储在一个名叫save的文件夹中。如果游戏不大,可以选择用access或其它小型数据库。也可以用这个方法《使用Lua处理游戏数据》。那如果游戏有多么数据存储呢?

其实,这在服务器中用MySQL是很常见的,体积小、速度快、总体拥有成本低。现在先不说在服务器中怎样使用MySQL,先谈谈MySQL嵌入式服务器的使用。没有涉及到C/S,应该会更容易懂些。

在以前学习sqlite时,我问过同学一个问题。我说,sql不是有很多命令吗,写个接口去调用sql命令不就一了百了了?就像写个客端户去调服务器。例如之前我说过的文章:《MySQL编程接口学习》。但是当时和现在,讨论的都是怎样把数据库嵌入应用程序。直接去用数据库或改写数据库就好了,没有必要走那么一个大弯。


嵌入式服务器的使用

完整的MySQL软件包括一个名为libmysqld的嵌入式服务器库,这个库所提供的功能可以让我们把MySQL服务器链接(或者说嵌入)到各种应用程序里。这使我们可以开发出自带MySQL服务器功能的独立应用程序,而不是那些只能作为一个客户通过网络另行连接某个服务器程序的普通MySQL应用程序。


什么是MySQL服务器和MySQL客户端?

DBMS可分为两类:一类为基于共享文件系统的DBMS,另一类为基于客户端——服务器的DBMS。前者(包括诸如Microsoft Access和FileMaker用于桌面用途,通常不用于高端或更关键的应用)。

MySQL、Oracle以及Microsoft SQL Server等数据库是基于客户端——服务器的数据库。客户端——服务器应用分为两个不同的部分。服务器部分是负责所有数据访问和处理的一个软件。这个软件运行在称为数据库服务器的计算机上。

与数据文件打交道的只有服务器软件。关于数据、数据添加、删除和数据更新的所有请求都由服务器软件完成。这些请求或更改来自运行客户端软件的计算机。客户端是与用户打交道的软件。

所以现在常见的网络游戏,客户端用在图形交互的部分比较多,而服务器就主要用作数据的处理。


怎样嵌入MySQL服务器?

如果你想编写一个嵌入了服务器的应用程序,就必须满足两个条件。首先,必须安装嵌入式MySQL服务器库:

a.如果从源代码开始构建,请在运行configure 时使用--with-embeded-server选项。

b.如果使用的是二进制发行版本,请使用MySQL5.1以上的版本。

在确认这两项要求都已得到满足之后,只需编译该应用程序并链接嵌入式服务器库(-lmysqld)即可,千万不要像往常那样链接MySQL客户库(-lmysqlclient)。MySQL服务器库的设计十分巧妙,如果你编写了一个应用程序来使用它,只要与相应的库分别链接,就可以得到一个嵌入式或是个客户/服务器版的应用程序。之所以如此,是因为MySQL客户库提供了必要的接口函数,它们可以按客户/服务器通信方式完成初始化和终止处理工作,而不是按照与一个嵌入式服务器进行通信的要求完成这些工作。


编写内建了服务器的应用程序

编写一个内建有服务器的应用程序与编写一个将运行在客户/服务器环境里的应用程序并没有太大的区别。事实上,即使你当初打算编写的是一个将运行在客户/服务器环境里的客户端程序,你也可以轻易地将它转换为使用嵌入式服务器的程序。


  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值