我应该在mysqli中使用prepare语句还是事务


Should I use prepare statement or transaction in mysqli?

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

因此,我正在考虑在收到客户的操作后,将prepare语句方法更改为transaction和commit。mysql中的事务会像prepare语句那样帮助性能吗?有人经历过和我一样的情况吗?你的方法是什么?非常感谢。

最近我遇到一位医生,他也有同样的想法。当我告诉他我的疼痛时,他只是告诉我什么药不能吃。没有分析,没有检查。我不知道这些药是否有效果,因为我仍然不知道这些疼痛的原因是什么。所以我不得不去另一家诊所,在那里他们对我进行了检查,并订购了确切的药物来治疗正确的疾病。

因此,它证实了我的担忧,即不仅PHP用户使用相同的操作方式——"让我们采取一些行动,看看是否有帮助"。

然而,这是错误的行为方式。你需要检查你的病人。查看需要治愈的特定疾病(或是否有任何疾病)。一旦你知道了,就来索要治疗这种特殊疾病的药物。就这么简单。检查你的应用程序,找出导致它运行缓慢的瓶颈(如果有的话),然后询问如何解决这个问题。

还有一些事情要告诉你。

  • 无论您是否有任何性能问题,都应该始终使用事先准备好的语句
  • 已准备好的语句a事务可以一起使用,无需更改