- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 charlotte-ruby/impressionist 来跟踪我的 Rails 应用程序中的印象。
我有一个非常简单的实现,类似于快速入门指南中显示的内容。有效地:- Controller :印象派 Action :[:show, :index]- 查看:@post.impressionist_count- 型号:is_impressionable
我今天遇到了一些数据库排队问题,在检查 Heroku Postgres 中的昂贵查询时发现了以下问题:
我立即从我的 Controller / View 中删除了印象派(在 14:30),您可以看到它是如何影响性能的:
有没有人遇到过印象派 gem 的类似问题?从数据库的角度来看,为什么它如此昂贵有什么想法吗?
编辑:
这是添加的索引:
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
最佳答案
@Ken Hampson - 感谢推荐。寻找长时间运行的 SELECT 查询确定了另一个需要的索引。添加后,POOF,一切都变得更好了。很奇怪,这个问题是在网站运行几个月后才出现的。印象中一定是打断了 Camel 背的大小。感谢您的帮助!
对于因数据库查询(在 Heroku 上)而遇到类似性能下降问题的任何人,请转至 https://postgres.heroku.com/databases/your-database-name查看“昂贵的查询”表是找出您可能遗漏索引的好方法。
关于ruby-on-rails - Rails Impressionist 进行昂贵的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25633177/
我正在阅读 MongoDB,并试图了解它的最佳用途。我没有看到明确答案的一个问题是哪些操作便宜或昂贵,以及在什么条件下。 你能帮忙澄清一下吗? 谢谢。 最佳答案 人们经常声称 mongodb 的写入速
我正在寻找一个主要来源(或一个非常好的解释)来支持在为 iPhone 编写软件时使用 autorelease 是危险的或过于昂贵的说法。 许多开发者都提出了这种说法,我什至听说 Apple 不推荐它,
我意识到这离微优化领域太远了,但我很想知道为什么调用 DateTime.Now 和 DateTime.UtcNow 如此“昂贵”。我有一个示例程序,它运行几个场景来做一些“工作”(添加到一个计数器)并
我是一名优秀的程序员,十分优秀!