Ser*_*age 4 java database performance hibernate jpa
想象一下这种情况,我有一个实体的Id,我有一个喜欢的列表与同一类的一些实体.要查找实体,何时更快在链表中执行for或在数据库中执行选择?
我的意思是,例如,当我在链表中有大约5个实体时,我想有一个for更快,而当我有数百万个实体时,select会更快.
但是当选择开始比速度快时?
内存中的数据结构总是比打开套接字,运行查询和发回响应更快.
一个好的查询可以在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存储桶,并仅对该存储桶中包含的实体进行对象比较.
总而言之,内存中的操作非常快,但您需要使用适合您的用例的数据结构.
归档时间: |
|
查看次数: |
127 次 |
最近记录: |