视图的"问题"(在这种情况下,您可能想要一个物化视图,假设复杂查询所基于的数据不会经常更改)是您在某种程度上违反了Rails的DRY'(为视图添加了UserV模型,纯粹主义者认为这是用户模型的重复.)
因此,理想的解决方案是为您的复杂查询充分利用RDBMS.如果未缓存的查询仍然需要很长时间才能执行(你仍然必须运行它们来填充memcached),或者如果你不能容纳一点时间 - 软糖(即缓存的结果,那么Memcached将无法帮助你)必须是实时精确的)和/或所涉及的表经常被修改.
在MySQL中,看看你是否可以进一步优化查询,因此需要几毫秒而不是秒(添加适当的索引,运行ANALYZE等)
如果您可以选择使用/尝试其他RDBMS,例如Postgres,请务必尝试一下. 与其他基于成本的引擎(如Oracle和Postgres)相比,MySQL在复杂连接(InnoDB)方面令人震惊.我从MySQL切换到Postgres,在MySQL上使用30s +的复杂连接(所有索引就位)在Postgres上花费了几毫秒.如果玩Postgres充分利用PGAdminIII的图形解释计划工具.