1

我们正处于项目的最后阶段并开始对其进行优化。

经过几次测试,我们意识到加载页面的大部分(如果不是全部)时间都花在了 Doctrine 上。

在 5 秒的页面加载中,3 - 4 秒仅用于 2 个 Doctrine 查询。

我们已经在 mysql 服务器和 Doctrine 以及结果缓存上启用了查询缓存,但这似乎只会使加载时间变得更糟。

据我所知,mysql 查询缓存处于活动状态:

[编辑]由于某种原因,我的其余问题已经消失,所以我再次发布[/编辑]

Qcache_free_blocks | 57
Qcache_free_memory | 22300072
Qcache_hits | 第7117
章 第3308
章 0
Qcache_not_cached | 第4537
章 第1225
章 2609

问题是缓存似乎没有被命中,大部分时间(平均 3 秒)的查询永远不会改变。

有没有人对为什么启用查询/结果缓存不会提高加载时间有任何提示?

4

2 回答 2

2

如果我猜对了,那么您目前没有最慢查询的列表。我建议从这个开始。

打开慢查询日志记录

log_slow_queries=/var/log/mysql.slow.log

进而:

尽可能限制关系

尽可能地限制关系很重要。这表示:

  • 施加遍历方向(尽可能避免双向关联)
  • 消除不必要的联想

这有几个好处:

  • 减少域模型中的耦合
  • 域模型中的代码更简单(无需正确维护双向性)
  • 减少教义的工作

Doctrine 最佳实践中窃取

于 2009-10-18T19:28:22.707 回答
0

您是否尝试从控制台/命令行查询?在没有 ORM 的情况下执行时,他们需要什么时间会很有趣。

请告诉我,我对使用 Doctrine 很感兴趣,但对性能有点害怕。

于 2009-09-09T19:38:52.583 回答