在处理商品drugList (17000个) 和门店byStoreListVo (400个) 的关联数据写入ES索引store_drug_index时,可以采取以下措施来优化执行速度:

  1. 并行处理:使用多线程或线程池将drugList和byStoreListVo分成多个子集,每个线程处理一个子集,实现并行处理,提高效率。

  2. 使用缓存:如果循环过程中出现重复的门店信息查询,可以使用缓存框架如Redis或Guava来缓存门店信息,减少数据库查询次数。

  3. 批量写入ES索引:将组装后的数据批量写入ES索引,而不是每次循环都写入一条数据,可以减少与ES的通信次数,提高写入速度。

  4. 使用批量更新或批量插入操作:如果需要更新或插入数据到数据库,可以使用批量更新或批量插入操作来减少数据库操作次数,提高执行速度。

  5. 对数据进行分片处理:将drugList和byStoreListVo按照一定的规则进行分片,每个线程只处理其中的一部分数据,可以减少每个线程处理的数据量,提高执行速度。

  6. 调整数据库查询语句:根据具体需求和数据库特点,优化查询语句,如添加索引、调整查询顺序等,以提高查询速度。

综上所述,可以通过并行处理、使用缓存、批量操作、分片处理等方式来提高执行速度。具体的实现方式可以根据实际情况进行调整和优化。

优化商品与门店关联数据写入ES索引速度

原文地址: https://www.cveoy.top/t/topic/pgIf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录