CQRS批量操作的效能問題
假設Book是一個聚合實體,現在要刪除某一個Book沒有問題,通過倉儲Repository載入實體,然後呼叫其delete方法即可,但現在問題來了,如果DB中有上萬個Book需要一次性批量全部刪除,那麼應該如何設計呢,看下面的程式碼:
@[author]CommandHandler[/author] public void handle(RemoveAllBookCommand command, UnitOfWork unitOfWork) { List<BookEntry> entrys = bookRepository.findAllBooks(); if (entrys != null || !entrys.isEmpty()) { for (BookEntry entry : entrys) { Book book = (Book) this.repository.load(new StringAggregateIdentifier(entry .getIdentifier())); book.delete();//刪除Book } } } <p> |
這種設計有兩個缺點:
1. 脫了褲子放屁,還不如直接呼叫bookRepository.deleteAllBooks()
2. 效能降低,獲取所有的Data Book,然後呼叫實體中的delete方法
3. 分頁刪除,如果有100萬Book需要全部清零,那麼一定需要分多次呼叫findBooks獲得資料實體,這會嚴重影響效能
各位版友有何建議?
相關文章
- Mybatis批量操作demoMyBatis
- QtWebEngine效能問題QTWeb
- 集合效能問題
- 關於 Puerts 的效能問題
- 兩個小問題深入淺出List的效能問題
- git 操作遇到問題Git
- Java操作hdfs出現的問題Java
- CQRS & Event Sourcing — 解決檢索應用程式狀態問題的一劑良方
- python 批量resize效能比較Python
- mongodb批量操作, bulk_write,MongoDB
- (轉)認清效能問題
- 故障分析 | show processlist 引起的效能問題
- 一個CRM OData的效能問題分析
- elasticsearch之警惕inner hits的效能問題Elasticsearch
- .net異常處理的效能問題
- mysql 字符集造成的效能問題MySql
- 解決吞吐效能問題時的思路
- 效能測試工具的 Coordinated Omission 問題
- 關於操作駁回遇到的問題
- Redis效能提高之批量和管道Redis
- 【效能測試】常見的效能問題分析思路(二)案例&技巧
- 使用PrepareStatement實現批量插入操作REST
- 深度解析Django REST Framework 批量操作DjangoRESTFramework
- VictoriaMetrics常見效能問題排查
- 如何分析報表效能問題
- ab個性化實驗的效能問題
- MySQL8.0 view導致的效能問題MySqlView
- 一次容器MySQL的效能問題排查MySql
- 你知道MySQL的Limit有效能問題嗎MySqlMIT
- 效能永遠不是優先考慮的問題
- 效能測試 有關 service mesh 的問題
- 多執行緒引起的效能問題分析執行緒
- 關於JQuery操作checkbox問題jQuery
- git的一些常用操作和問題Git
- kakafka - 為CQRS而生fka - 為CQRS而生Kafka
- 【效能測試】常見的效能問題分析思路(一)道與術
- 有問題的mybatis的sql導致對資料庫進行了批量的修改MyBatisSQL資料庫
- ES 筆記四:文件的基本 CRUD 與批量操作筆記
- Redis常見的效能問題和解決方法UWRedis