我必须运行一个查询,其中一个列被调用两次。
Transaction.where("datetime >= ? && datetime <= ?", params[:date_one], :params[:date_two])
现在,索引这是我们做的基本
add_index :transactions, :datetime
现在我的问题是我能做些像......
add_index :transactions, [:datetime, :datetime]
它是否会真正加速搜索或提高性能。提前致谢
答案 0 :(得分:3)
你不必这样做。向列添加索引会加快对该列的查询速度。在查询中使用此列的次数无关紧要,只有索引的存在与否。此外,您可以像这样重写您的查询:
Transaction.where("datetime BETWEEN ? AND ?", params[:date_one], :params[:date_two])