Я получил базу данных Python BSDDB.Очевидно, он хранится на жестком диске.Когда я удаляю некоторые записи, файл на диске не становится меньше (следовательно, он растет довольно быстро ...)
utDelList = []
urlsDelList = []
for ut in iter(self.urls2task):
tmp = string.split(ut, ":")
uid = tmp[1]
url = cPickle.loads(self.urls[int(uid)])
urlsDelList.append(uid)
utDelList.append(ut)
del self.urlsDepth[uid]
del self.urlsStatus[uid]
del url
for ut in utDelList:
del self.urls2task[ut]
for uid in urlsDelList:
del self.urls[int(uid)]
(...)
#synchronize all files
self.sync()
Моя последняя надежда заключалась в том, чтобы принудительно выполнить сброс -закрытие и открытие файлов снова
#close all files & start them again, eg
self.tasks.close()
self.urls2task.close()
self.tasks = bsddb.rnopen(filepath)
self.urls2task = bsddb.hashopen
критический элемент здесь - запись self.tasks;растет самый быстрый и самый большой из всех файлов.Изменит ли консервирование каким-либо образом способ его удаления?И еще раз - почему файлы все еще сохраняют записи после их удаления?Буду признателен за 4 предложения (первое сообщение здесь:))