看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这几步,这么做预处理的优势何在?难道这才是正确的使用方式?求大神解惑是我理解错了吗?
关于 mysql预处理 在游戏服务器中应用思路的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-