我们正处于项目的最后阶段,并开始对其进行优化。
经过几次测试后,我们意识到加载页面所花费的大部分时间(如果不是全部的话)都花在了Doctrine上。
超过5秒的页面加载,3 - 4秒仅用于2个Doctrine查询。
我们在mysql服务器和Doctrine以及结果缓存上启用了查询缓存,但这似乎只会使加载时间变得更糟。
据我所知,mysql查询缓存处于活动状态:
[编辑]由于某种原因我的问题的其余部分已经消失,所以我再次发布它[/ edit]
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秒)的查询永远不会改变。
有没有人知道为什么启用查询/结果缓存不会改善加载时间?
答案 0 :(得分:2)
如果我做对了,那么你目前没有最慢查询的列表。我建议从这开始。
log_slow_queries=/var/log/mysql.slow.log
然后:
尽可能地约束关系很重要。这意味着:
答案 1 :(得分:0)
您是否从控制台/命令行尝试查询? 在没有ORM的情况下执行时,他们需要什么时间会很有趣。
请让我知道,我有兴趣使用Doctrine,但很少担心性能。