Get all values of a single column efficiently

Imagine you want this:
@names = MyModel.find(:all).map{ |i| i.name }.uniq
Yes, that works! You get all distinct names of one column, you can even do something like that:
#Using Shortcut Blocks with Symbol to_proc
@names = MyModel.all.map(&:name).uniq
Cool, rely small code(almost seems I'm using Haskel) but not that efficient if your model's table has lots of columns. (Imagine! The whole table is being loaded to memory) So what is the solution?
MyModel.find( :all, :select > 'DISTINCT name' )
If you specify wich columns you need, in the sql query, you will spare some memory. And in my earlier example you can also pass the "uniq" work to the database.