忧郁程序猿 2016-09-13 02:31 采纳率: 0%
浏览 808

关于 mysql预处理 在游戏服务器中应用思路的问题

看mysql文档的意思,预处理的使用思路应该是:
1.调用mysql_stmt_int()生成预处理句柄;
2.调用mysql_stmt_prepare()编译预处理sql语句;
3.调用mysql_stmt_bind_param()传参;
4.调用mysql_stmt_execute()执行;
5. 获取结果.....
6.释放句柄
其中1和2只执行一次,3,4,5有若干条,以此来提高效率...
按这个思路我对自己游戏的服务器数据库模块进行了封装,在服务器启动时对所有sql语句进行1,2两步生成对应的预处理句柄,以一个唯一ID为key保存在一个map中。当需要调用sql语句时,根据这个唯一ID获取预处理句柄对其进行3,4,5操作。在服务器关闭时释放所有句柄。
我一直认为这么做是对的直到我看了3个游戏服务器数据库模块的代码,它们都不是这样的。它们对每个sql的每次调用都要顺序执行1,2,3,4,5,6这几步,这么做预处理的优势何在?难道这才是正确的使用方式?求大神解惑是我理解错了吗?

  • 写回答

1条回答

  • oyljerry 2016-09-13 15:09
    关注

    有些没有做预处理,可能觉得用完就释放 简单但是性能没有这么好

    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题