我正在使用charlotte ruby/impressionist在我的rails应用程序中跟踪印象。
我有一个非常简单的实现,类似于快速入门指南中的内容。有效:
-控制器:印象派动作:[:显示,:索引]
-浏览:@post.impressionist_count
-模特:易受影响吗
今天我遇到了一些数据库排队问题,在heroku postgres中查看我昂贵的查询时发现了以下问题:
我立即从控制器/视图中删除了印象派(14:30),您可以看到它对性能的影响:
有没有人遇到过印象派宝石的类似问题?从数据库的角度看,有没有想过为什么这么贵?
编辑:
以下是添加的索引:

  add_index "impressions", ["controller_name", "action_name", "ip_address"], name: "controlleraction_ip_index", using: :btree
  add_index "impressions", ["controller_name", "action_name", "request_hash"], name: "controlleraction_request_index", using: :btree
  add_index "impressions", ["controller_name", "action_name", "session_hash"], name: "controlleraction_session_index", using: :btree
  add_index "impressions", ["impressionable_type", "impressionable_id", "ip_address"], name: "poly_ip_index", using: :btree
  add_index "impressions", ["impressionable_type", "impressionable_id", "request_hash"], name: "poly_request_index", using: :btree
  add_index "impressions", ["impressionable_type", "impressionable_id", "session_hash"], name: "poly_session_index", using: :btree
  add_index "impressions", ["impressionable_type", "message", "impressionable_id"], name: "impressionable_type_message_index", using: :btree
  add_index "impressions", ["user_id"], name: "index_impressions_on_user_id", using: :btree

最佳答案

@肯汉普森-谢谢你的推荐。查找长时间运行的select查询,找到了另一个需要的索引。加了一次,噗,一切都好了。非常奇怪的是,这个问题刚刚出现后,有几个月的网站生活。印象一定有那么大,把骆驼的背弄断了。感谢您的帮助!
对于由于db查询(在heroku上)而导致性能下降而遇到类似问题的任何人来说,转到https://postgres.heroku.com/databases/your-database-name并查看“昂贵的查询”表是找出可能漏掉索引的地方的一个好方法。

09-28 05:29