为了账号安全,请及时绑定邮箱和手机立即绑定

优化对大量数据的搜索和插入操作

优化对大量数据的搜索和插入操作

qq_遁去的一_1 2021-10-26 10:36:05
我正在开发一个需要处理大量数据的程序,但我想先将该数据保存在本地存储结构中,然后再将其迁移到数据库。所以,我的问题是:保存该数据的最佳文件类型(或本地存储结构)是什么(这是结构化的,为此,我们假设它只是一个 id 和一个名称),以某种方式可以搜索和插入优化吗?我的虽然是一个 CSV 文件,因为数据是结构化的,这可以保存相对大量的数据(在这种情况下,我需要大约 1000 到 100 000 行),但我不确定是否有更好的在那里。我的想法是按名称的字母顺序对数据进行排序,因此在最坏的情况下,搜索操作将花费 O(n)。至于插入操作,我正在努力寻找一个好的解决方案,以按字母顺序直接在文件中插入一行,因为我无法在两行之间插入一行,所以我必须在插入后覆盖整行我想要的那个。(我也考虑过将整个文件读入一个列表,然后再次写入,但如果文件太大,这不是最好的实现)。那么,谁能给我一些关于要使用的最佳文件类型的想法,以及哪种方法最适合插入和搜索优化?非常感谢!(这是我的插入算法,但它会产生随机行为)def writingOpt(firstName, lastName, birthdate, country):    try:        file = open("players.csv", "r+", newline='')    except FileNotFoundError:        print("File players.csv not found")    else:        with file:            reader = csv.reader(file)            writer = csv.writer(file)            name = firstName + ' ' + lastName            inserted = False            previousRow = []            previousPosition = 0            for row in reader:                if name < row[0]:                    file.seek(previousPosition)                    if not inserted:                        previousRow = [name, birthdate, country]                        inserted = True                    writer.writerow(previousRow)                    previousRow = row                previousPosition += len(','.join(row))
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信