【问题标题】:Stored Procedures or Not?存储过程与否?
【发布时间】:2012-12-17 23:05:17
【问题描述】:

我有一个 PHP 脚本可以满足繁重的负载。这是我的智能手机游戏的后端脚本。在这个脚本中,我使用 MySQL 进行多次插入和选择。

A) 我想知道 存储过程 是否可以提高响应和执行时间?

B) 在响应时间方面,从 MySQL 切换到 MySQLi 是否有任何收获?或者我应该寻找一个完全不同的解决方案

【问题讨论】:

  • 您是否对查询进行了“描述”以确保它们被正确编入索引?
  • 好吧,既然 mysql_* 函数将在下一个主要版本中被弃用,请查看PDO。它的预处理语句可以提高性能。如果您可以发布您当前的脚本,可能会有改进它的方法。

标签: php mysql optimization stored-procedures mysqli


【解决方案1】:

存储过程会将复杂的逻辑转移到系统的数据库部分,因此您可以通过避免 PHP 发出大量插入来有效地利用工作(可能还有很多工作)。如果您在服务器脚本端执行的操作可以移植到存储过程,则可能会提高性能。

对于第二个问题,你应该从 mysql API 转移到 mysqli API,因为 mysql API is already deprecated

【讨论】:

  • 为什么要从 MySQLi 迁移到 MySQL?
  • 我在 mysql 服务器上遇到了一些关于“to many users”的问题。存储过程会对此有所帮助吗?
  • @JesperMansa 取决于您的问题,提供更多详细信息或发布有关您的问题的新问题。
  • @Alec - 好的,谢谢。我只是在寻找一些具有高流量网站和多个记录调用的一般良好做法......
  • @JesperMansa 如果您真的关心性能,那么我建议您了解存储过程、触发器等。他们将真正为您提供高流量、数据密集型服务。
【解决方案2】:

我想知道存储过程是否可以在响应时间和快速执行方面为我做任何事情?

没有。

从 mysql 到 mysqli 的响应时间我能得到什么吗?

没有。

还是我应该换个方向看?

在对你的具体情况一无所知的情况下,不可能向你展示任何方向。

作为一般规则,可以通过删除索引来优化多个插入。批量插入可以通过使用事务进行优化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    相关资源
    最近更新 更多