2012-10-16 34 views
0

我想知道我们通常可以如何优化数据密集型Web应用程序的数据库性能。是否有任何共同的要求,如使用哪些查询,如何快速处理关系,是否尽可能避免写入数据库等等。任何相关的作品。什么是优化数据库性能的常用和有用的技术?

或者更具体地说,任何使Ruby on Rails数据库更高效的技术?

非常感谢!

回答

3

通过分析你的瓶颈开始,NewRelic是一个很好的工具来帮助你。 为了提高读取性能,添加索引,急切的加载和缓存是低挂的成果。查看https://github.com/flyerhzm/bullet可帮助您快速预测并删除N + 1个查询。

加速写作通常更棘手。转向队列可以极大地帮助并且通常相当直接地实施。结帐https://github.com/defunkt/resquehttps://github.com/mperham/sidekiq

+0

有时函数用于您不会第一眼看到它们触发数据库查询的地方。例如,在1:n关系中,您可以像'a.bs.find_by_id(1)'(其中has_many:bs)那样编写。这会触发查询。如果你使用'a.bs.select {| b | b.id}'而不是。 –