我们处于项目的最后阶段,并开始对其进行优化。
经过几次测试,我们意识到大多数(如果不是全部)加载页面的时间都花在Doctrine上了。
在5秒的页面加载中,3-4秒仅花费在2个Doctrine查询上。
我们已经在mysql服务器和Doctrine以及结果缓存上启用了查询缓存,但这似乎只会使加载时间变得更糟。
据我所知,mysql查询缓存是活动的:
由于某种原因,我的问题的其余部分消失了,所以我重新张贴/编辑
Qcache_free_blocks | 57
Qcache_free_memory | 22300072
Qcache_hits | 7117
Qcache_inserts | 3308
Qcache_lowmem_prunes |0
Qcache_not_cached | 4537
Qcache_queries_in_cache | 1225
Qcache_total_blocks | 2609
问题是缓存似乎没有命中,花费大部分时间(平均3秒)的查询永远不会改变。
为什么启用查询/结果缓存不会缩短加载时间,有谁有什么建议吗?
发布于 2009-10-18 19:28:23
如果我没记错的话,您目前还没有最慢查询的列表。我建议从这里开始。
Turn on slow query logging
log_slow_queries=/var/log/mysql.slow.log然后:
尽可能多地约束关系
尽可能多地约束关系是很重要的。这意味着:
不必要的关联设置遍历方向(如果possible)
,则避免双向关联
这有几个好处:
Doctrine Doctrine减少了域模型中model
从Doctrine best practices窃取
发布于 2009-09-09 19:38:53
您是否尝试过从控制台/命令行执行查询?在没有ORM的情况下执行时,它们需要什么时间,这将是很有趣的。
请让我知道,我有兴趣使用Doctrine,但有点害怕性能。
https://stackoverflow.com/questions/1271412
复制相似问题