Log for
*新手討論群
一個資料夾裡面有約200個子資料夾,每個子資料夾約有100個第二層子資料夾,每個第二層子資料夾約有100張圖片,資料夾大小約在50GB+,使用scandir耗費時間大約在300秒以上,工作需求需要把這個時間壓到30秒以內
網路上搜到的幾個方法很難解決 因為本身就是巨型資料夾 stackoverflow的問題通常也只到100000個檔案的級別,但是執行時間大概就在30s以上
我目前的做法是建立索引表,第一次搜尋的時候把所有子資料夾與第二層子資料夾的關係紀錄下來,然後後續就能直接用路徑訪問
但是後來發現資料夾的結構需要時常變動,如果建立索引表存在後續更新產生不同步的情況
我覺得不可能達成 這是python耶 但是別人就是覺得要能做到 = =
另外盡量不要在 scandir 的邏輯裡面做業務邏輯,或許可以讓 scandir 那一塊程式碼快一點
了解 建立索引表應該會是比較好的方法 說服別人比較困難(他們希望避免維護額外的索引表,而公司的檔案系統並沒有考慮到時常調用的情況,所以才會出現需要遍歷過久跟更動的情況)