背景:需要对十万级数据行的Excel 做上传文件重复性校验但标注出重复项对系统内存压力太大问题:还有什么方案可以在不花费太多内存的情况下让用户知道上传文件里有重复项
有一些方案可以在不花费太多内存的情况下让用户知道上传文件中是否存在重复项:
-
分块校验:将文件拆分成多个较小的块,每次读取一个块,进行校验,然后释放内存。如果发现重复项,可以记录下来,然后继续处理下一个块。这样可以减少内存的占用,但需要进行多次读写操作,可能会耗费一定的时间。
-
使用哈希算法:对每行数据进行哈希计算,并将哈希值存储在一个哈希表中。当读取新的行时,可以通过哈希表查找是否存在相同的哈希值,从而判断是否存在重复项。这种方法可以减少内存的使用,但可能存在哈希冲突的情况,需要额外处理。
-
外部排序:将数据分成多个较小的文件,并对每个文件进行排序。然后逐个比较已排序的文件,找出重复项。这种方法可以减少内存的使用,但需要进行多次读写和排序操作,可能会耗费较长的时间。
-
数据库操作:将数据导入数据库,并在数据库中使用索引进行重复性校验。数据库具有高效的索引机制,可以减少内存的使用,并快速找出重复项。但这需要额外的数据库操作和相应的数据库资源。
根据具体情况选择适合的方案,可以根据数据量、时间要求和可用资源进行权衡。
原文地址: https://www.cveoy.top/t/topic/irFp 著作权归作者所有。请勿转载和采集!