2013-03-27 52 views
0

有一个大型的php应用程序,它使用PDO api (http://php.net/pdo)来存储和检索一个或多个数据库中的信息。在应用程序的软件开发生命周期中,您发现由于PDO API调用需要很长时间而导致大量性能问题。PDO和性能

  • 您将如何确定在每个PDO API调用中花费了多少时间?我们没有兴趣区分数据库执行时间与每次API调用的时间量。
  • 您的解决方案如何影响应用程序的可维护性?具体而言,如果新应用程序框架被添加到应用程序中,您的解决方案时间PDO在该框架中调用的时间如何
  • 您的解决方案可以通过哪些方式更改应用程序的性能特征?
+0

是PDO需要拨打电话的瞬间相比,网络开销和DB的时间。因此,问题不是由“PDO API调用”引起的,而是由“执行数据库查询”造成的。 – zerkms 2013-03-27 22:43:07

+0

@zerkms,您是否测量了查询执行时间与往返时间之间的差异? – 2013-03-27 22:47:37

+0

@ Bill Karwin:对我来说?无论哪种方式,数据库性能(和往返)都与使用的DBAL无关。 – zerkms 2013-03-27 22:48:07

回答

0

您将如何确定在每个PDO API调用中花费了多少时间?我们没有兴趣区分数据库执行时间与每次API调用的时间量。

我就从PDO继承与我的自定义类,并把手表有

怎样解决方案影响您的应用程序的可维护性?具体而言,如果新应用程序框架被添加到应用程序中,您的解决方案时间PDO在该框架中调用的时间如何

所有可以与PDO一起工作的产品也可以与扩展一起使用。 LSP原理

您的解决方案可以通过哪些方式更改应用程序的性能特征?

都能跟得上(不包括未成年人的开销用于存储分析结果,如果需要的话)

+0

那么你是建议使用继承的类而不是PDO?这可能意味着一个重大的重大努力......我最初的想法只是把一些日志记录跟踪PDO调用返回需要多长时间。如果这种方法有什么错误怎么办? – psychickita 2013-03-27 23:47:23

+0

@psychickita:“这可能意味着一个重大的重大努力”---这只意味着你的代码中存在依赖管理问题。在设计良好的应用程序中,切换到另一个DBAL(具有相同的接口)将花费1行代码。 – zerkms 2013-03-27 23:57:16