我应该在mysqli中使用准备声明或交易吗?

时间:2013-11-26 04:21:47

标签: php mysql mysqli

这是我的场景:我正在设置一个游戏服务器,一堆插入,更新,删除将每秒提交到数据库。我在php中使用一个prepare语句来避免DB过热。 (即,具有不同参数的相同sql语句将每隔5秒同时提交给DB)。但似乎这种方法不可扩展,因为如果一个批处理中的语句太多,数据库需要处理超过5秒,或者即使cron作业已经死亡,也会出现严重问题。

因此,当我从客户端收到操作时,我正在考虑将prepare语句方法更改为transaction和commit。 mysql中的事务是否有助于像prepare语句那样的性能?有没有人像我一样经历过同样的情景,你的方法是什么?非常感谢你。

1 个答案:

答案 0 :(得分:2)

最近我遇到了一位同样思考的医生。当我告诉他我的疼痛时,他只是告诉他不吃药。没有分析,没有检查。我不知道这些药片是否会产生任何影响,因为我仍然不知道这些疼痛是什么原因。因此,我不得不去另一家诊所,在那里他们检查了我,并准确地点了药,以治愈正确的疾病。

所以它证实了我担心不仅PHP用户使用相同的运作方式 - “让我们采取一些行动,看看,如果它有帮助”。

然而,这是采取行动的错误方式。你需要检查你的病人。了解需要治愈的特定疾病(或者是否有任何疾病)。一旦你知道了 - 然后来请求治疗这种特殊疾病的药片。就如此容易。检查你的应用程序,找到使其运行缓慢的瓶颈(如果有的话),然后询问如何解决这个问题。

另外,有些事要告诉你。

  • 无论您是否有任何性能问题,都应该始终使用准备好的声明。
  • 准备好的陈述交易可以一起使用,无需互换。