hibernate的集合性能

hibernate映射文件中的集合的映射有:map、list、array、set、bag、idbag。

如下是它们的关系:

集合类型 有索引 允许重复值 可添加或移除
map ×
list
array ×
set × ×
bag ×
idbag ×

 

当inverse="true"时,集合不维护对应关系,则insert、update、delete操作对其性能无影响。但在是用反向集合添加元素的时候会有区别,则是用允许重复值可添加或移除的集合类型会更高效,如:list、bag。因为当子元素不需判断唯一,集合添加元素的操作不需要把整个集合取回来进行判断。

 

当inverse="false"时,集合维护对应关系,会出现以下几种操作的情况:

insert: 有索引且不允许重复值的集合类型性能最高(map,idbag),其次是无索引但不允许重复值的集合(set),允许重复值的集合类型最慢(list,bag)。

update: 有索引且不允许重复值的集合类型性能最高(map,idbag),其次是无索引但不允许重复值的集合(set),允许重复值的集合类型最慢(list,bag,array)。

delete: 有索引且不允许重复值的集合类型性能最高(map,idbag),其次是无索引但不允许重复值的集合(set),允许重复值的集合类型最慢(list,bag)。

 

posted @ 2013-04-19 00:49  溪老二  阅读(273)  评论(0)    收藏  举报