新手问题 Rails 对数据库操作解疑

shadow · 2012年06月19日 · 最后由 lgn21st 回复于 2012年06月19日 · 3768 次阅读

我们的数据库经常在 count 操作的时候 出现 count 操作瓶颈。然后突发然有一个问题: 我们现在用 rails 把一些数据库层面的好东西丢掉了,比如触发器,比如存储过程,不知道 rails 对这些支持的怎么样? 请大家回答下。我很小白

请解释一下 count操作的时候出现count操作瓶颈,以及这个count操作瓶颈跟你的问题的关系。

#1 楼 @lgn21st 在现在的业务逻辑下 经常添加 where 条件的 count 操作,某些条件下执行速度很不尽人意。当然我的问题 rails 对数据库的触发器跟存储过程的支持跟目前这个问题关系不太大,我只是想了解下 rails 对数据库的触发器存储过程支持的如何。

#2 楼 @Shadow 这些 where 条件添加索引了吗?

count 操作出问题了就去优化 count 啊 和存储过程什么关系?

#2 楼 @Shadow 针对 count,是可以做cache的,因为 Rails 的 ActiveRecord 需要兼容各种不同的数据库,所以很多高级功能和数据库自有的特性是不被直接支持的,比如 Foreign key。

如触发器或者存储过程处理等数据库的高级特性方面,你可以绕过 Rails 的 ActiveRecord 去单独使用,这个需要具体问题具体分析。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号