第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

優(yōu)化對大量數(shù)據(jù)的搜索和插入操作

優(yōu)化對大量數(shù)據(jù)的搜索和插入操作

qq_遁去的一_1 2021-10-26 10:36:05
我正在開發(fā)一個需要處理大量數(shù)據(jù)的程序,但我想先將該數(shù)據(jù)保存在本地存儲結(jié)構(gòu)中,然后再將其遷移到數(shù)據(jù)庫。所以,我的問題是:保存該數(shù)據(jù)的最佳文件類型(或本地存儲結(jié)構(gòu))是什么(這是結(jié)構(gòu)化的,為此,我們假設(shè)它只是一個 id 和一個名稱),以某種方式可以搜索和插入優(yōu)化嗎?我的雖然是一個 CSV 文件,因為數(shù)據(jù)是結(jié)構(gòu)化的,這可以保存相對大量的數(shù)據(jù)(在這種情況下,我需要大約 1000 到 100 000 行),但我不確定是否有更好的在那里。我的想法是按名稱的字母順序?qū)?shù)據(jù)進(jìn)行排序,因此在最壞的情況下,搜索操作將花費 O(n)。至于插入操作,我正在努力尋找一個好的解決方案,以按字母順序直接在文件中插入一行,因為我無法在兩行之間插入一行,所以我必須在插入后覆蓋整行我想要的那個。(我也考慮過將整個文件讀入一個列表,然后再次寫入,但如果文件太大,這不是最好的實現(xiàn))。那么,誰能給我一些關(guān)于要使用的最佳文件類型的想法,以及哪種方法最適合插入和搜索優(yōu)化?非常感謝?。ㄟ@是我的插入算法,但它會產(chǎn)生隨機(jī)行為)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 關(guān)注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號