有人能简单地向我解释一下方法uniq
和distinct
在使用上的区别吗?
我见过这两个词在相似的语境中使用,但我不太清楚它们之间的区别.
有人能简单地向我解释一下方法uniq
和distinct
在使用上的区别吗?
我见过这两个词在相似的语境中使用,但我不太清楚它们之间的区别.
Rails queries acts like arrays,因此.uniq
产生与.distinct
相同的结果,但是
.distinct
是sql查询方法.uniq
是数组方法Note:在Rails中,不推荐使用5+Relation#uniq
,建议使用Relation#distinct
.
Hint:
在拨打.uniq/.distinct
之前使用.includes
可以让你的应用程序达到slow或speed up,因为
uniq
不会产生额外的sql查询distinct
美元就行了但两种结果都是一样的
例子:
users = User.includes(:posts)
puts users
# First sql query for includes
users.uniq
# No sql query! (here you speed up you app)
users.distinct
# Second distinct sql query! (here you slow down your app)
这对于实现高性能应用程序非常有用
Hint:
同样适用于
.size
对.count
;present?
对.exists?
map
对pluck