当select比a快时?

Ser*_*age 4 java database performance hibernate jpa

想象一下这种情况,我有一个实体的Id,我有一个喜欢的列表与同一类的一些实体.要查找实体,何时更快在链表中执行for或在数据库中执行选择?

我的意思是,例如,当我在链表中​​有大约5个实体时,我想有一个for更快,而当我有数百万个实体时,select会更快.

但是当选择开始比速度快时?

Vla*_*cea 5

内存中的数据结构总是比打开套接字,运行查询和发回响应更快.

一个好的查询可以在10-100ms内运行,而Java操作可能需要100ns.

使用LinkedList可能无法获得最佳性能.与使用数据库索引类似,您可以使用HashMap,并通过其ID来映射实体:

Map<Long, Entity> idEntityMap = new HashMap<>;
idEntityMap.put(entity.getId(), entity);
Run Code Online (Sandbox Code Playgroud)

因此,当您搜索实体时,您只需运行:

Entity entity = idEntityMap.get(entityId);
Run Code Online (Sandbox Code Playgroud)

该调用将首先识别实体所在的Map存储桶,并仅对该存储桶中包含的实体进行对象比较.

总而言之,内存中的操作非常快,但您需要使用适合您的用例的数据结构.