Ruby on rails 在RubyonRails和PostgreSQL中,是否有一个gem会在没有索引的列上使用JOIN/WHERE查询时发出通知?

Ruby on rails 在RubyonRails和PostgreSQL中,是否有一个gem会在没有索引的列上使用JOIN/WHERE查询时发出通知?,ruby-on-rails,performance,postgresql,activerecord,Ruby On Rails,Performance,Postgresql,Activerecord,是否有Ruby gem或PostgreSQL扩展可以在JOIN或WHERE查询在没有索引的列上使用时发出通知?不直接,但您可以使用auto\u explain和pg\u stat\u语句来帮助。不要假设seqscan是坏的,或者索引总是好的;你需要了解选择性、指数成本等方面的知识。@CraigRinger,谢谢。我提出这个问题的原因是,我们有几个表有几百万行,并且我们在生产中已经遇到了问题,其中一个特定的查询需要很长时间才能完成,并且会减慢整个数据库的速度。我知道很难为这做一个完美的工具,但如果

是否有Ruby gem或PostgreSQL扩展可以在
JOIN
WHERE
查询在没有索引的列上使用时发出通知?

不直接,但您可以使用
auto\u explain
pg\u stat\u语句来帮助。不要假设seqscan是坏的,或者索引总是好的;你需要了解选择性、指数成本等方面的知识。@CraigRinger,谢谢。我提出这个问题的原因是,我们有几个表有几百万行,并且我们在生产中已经遇到了问题,其中一个特定的查询需要很长时间才能完成,并且会减慢整个数据库的速度。我知道很难为这做一个完美的工具,但如果有什么工具至少可以让您知道什么时候可能会导致这样的问题,并且在执行测试时运行,那将是非常棒的。是的,有一个工具可以将测试查询与最小运行时进行比较,捕获自动解释数据,等等。这是一个有趣的项目,但要产生一个有用的假阳性率比你想象的要困难。