【问题标题】:Is SQLite right for my game?SQLite 适合我的游戏吗?
【发布时间】:2011-09-28 20:42:02
【问题描述】:

我一直在为我的在线纸牌游戏(PostgreSQL、Oracle 等)寻找不同的数据库,虽然 SOCI + pg 或 Oracle 更强大,但它们也很难编译、集成和做很多事情比我需要做的更多。

很简单,这些是我的要求: 存储用户名、哈希、获胜、失败、电子邮件。很简单。

游戏本身实际上不会经常与数据库通信。当玩家登录时,我将通过用户名检索行来登录他们,并使用他们输入的密码生成的哈希验证哈希。

除此之外,服务器仅访问数据库以添加用户、记录游戏后的输赢或更新个人信息。

鉴于 SQLite 支持有限并发,即使我同时运行 100 个左右的纸牌游戏,这也应该可以满足我的需求。

考虑到上述情况,SQLite 是否适合我,还是我应该认真考虑选择更复杂的解决方案?请记住,数据库不是我的强项。

谢谢

【问题讨论】:

  • 为什么不使用 MySQL?它没有并发限制,也没有与企业级解决方案相关的“头痛”。此外,它是开源的,如果你变得流行,它可以很好地扩展到大量游戏。
  • @tafoo85 MySQL 是否只允许我执行 SQL 语句而无需安装其他软件,还是 MySQL 是在 localhost 上运行的服务器?
  • MySQL 只能在 localhost 上运行和侦听连接(请参阅有关 bind-address 和 skip-networking 选项的文档)如果您想进行实验,您还可以使用 libmysqld,它是一个提供 MySQL 作为守护程序的 C++ 库,但不鼓励将其用于一般用途,因为正确使用它很复杂。

标签: c++ c database sqlite soci


【解决方案1】:

对于这么多客户,SQLite 非常适合。但是,我建议您将此功能包装在一个简单的而非特定于数据库的接口中,并为 SQLite 实现它。一旦您获得数百万客户端以及并发/性能问题,您可以简单地投入另一个使用更强大数据库的实现,而无需过多更改您的应用程序代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多