【发布时间】:2011-07-18 21:12:37
【问题描述】:
我们有一个刚刚开始开发的 Rails3 应用程序。我们在两个模型之间使用 has_and_belongs_to_many 关系。每次我们使用其中一种模型时,ActiveRecord 都会对连接表执行 DESCRIBE 查询,例如:
SQL (1.1ms) describe `articles_tags`
这些查询相对昂贵(也就是说,比实际的 SELECT 查询慢 10 倍以上)并且执行得非常频繁。它们对我来说似乎没有必要:由于 has_and_belongs_to_many-relation 自动生成了表,因此 ActiveRecord 应该已经知道它的结构(只是一个 article_id 和一个 tag_id 列)。
这种行为有充分的理由吗?如果没有,我该如何阻止它发生?
【问题讨论】:
标签: mysql ruby-on-rails performance activerecord