Hegwin.Me

朱雀桥边野草花,乌衣巷口夕阳斜。

Rails优化SQL可能用到的工具

Rails查询数据慢?想找到性能瓶颈在哪里?

目前我个人是用到了以下几个工具:

  1. New Relic 老牌的性能检测工具,与Rails集成之后,在Database监控中能显示最慢的Query之类的,不过这需要New Relic至少订购了Essentials级别的计划。

  2. Gem: active_record_query_trace 你可以在log中看到每个SQL是来自于哪一条代码。

    使用场景: 用时候会发现尽管在controller中已经查询了/预加载数据,但在渲染view的时候,还是出现了SQL查询,这个工具可以帮你追踪到是view中哪一行代码造成了数据库查询。不过这个工具其实并不区分SQL是在controller还是view里查询,只要进行了SQL操作,都会显示调用栈的前N个记录(N默认为5)。

  3. Gem: bullet 这个gem可以用来提醒你,项目中发生了N+1查询,在Sinatra中也可以使用。

Tags:

Posted on: 2017-09-27

Back