Grailsドキュメントが更新されたようです:
http://grails.org/doc/1.0.x/
セクション5.2.4では、コレクションタイプの潜在的なパフォーマンスの問題について説明します。
関連するセクションは次のとおりです。
コレクションの種類とパフォーマンスに関する注意
Java Setタイプは、重複を許可しないコレクションです。Setアソシエーションにエントリを追加するときに一意性を確保するために、Hibernateはデータベースからアソシエーション全体をロードする必要があります。アソシエーションに多数のエントリがある場合、これはパフォーマンスの点でコストがかかる可能性があります。
Hibernateは順序を維持するためにアソシエーション全体を順番にロードする必要があるため、リストタイプにも同じ動作が必要です。したがって、アソシエーションに多数のレコードが予想される場合は、アソシエーションを双方向にして、リンクを逆側で作成できるようにすることをお勧めします。たとえば、次のコードについて考えてみます。
def book = new Book(title:"New Grails Book")
def author = Author.get(1)
book.author = author
book.save()
この例では、関連付けリンクは子(Book)によって作成されているため、コレクションを直接操作する必要がないため、クエリが少なくなり、コードが効率的になります。多数の関連するBookインスタンスを持つ作成者がいる場合、次のようなコードを作成すると、パフォーマンスに影響があります。
def book = new Book(title:"New Grails Book")
def author = Author.get(1)
author.addToBooks(book)
author.save()