파이썬에서 수치 시뮬레이션을 수행하여 상당히 큰 데이터 객체 (약 200MB)를 만듭니다. 나는 그것들을 sqlite3 db에 쓴다. 증가 해상도 (따라서 데이터 크기) 약 20 %로 DB에 삽입하는 동안 메모리 오류가 발생합니다. 전에 작은 해상도로 잘 작동했습니다. 내가 winxp를 1GB의 RAM에서하고 있어요파이썬은 sqlite3에 큰 요소를 삽입합니다. db - 메모리 오류
def write_to_db(self, filename, dataObject, name) :
connection = sqlite.connect(filename)
cursor = connection.cursor()
cursor.execute("CREATE TABLE pulses (ID INTEGER PRIMARY KEY, name STRING, data BLOB)")
cursor.execute("INSERT INTO pulses(name, data) VALUES (?, ?)", (dataObjectName, sqlite.Binary(pickle.dumps(dataObject))))
connection.commit()
connection.close()
, 3기가바이트 스왑 (그리고 그 스왑이 확장 될 필요가 창-통보받지 못했다), 파이썬 2.6 : 여기에 코드입니다.
미리 도움을 주셔서 감사합니다. 팀
SQLite 및 대부분의 관계형 데이터베이스는 200MB 객체를 염두에두고 설계되지 않았습니다. 그것은 작동하더라도 그것은 끔찍한 데이터베이스 조각화를 일으킬 가능성이 높습니다. 당신이 일하는 데 잘못된 도구를 사용하고 있다고 말하고 싶습니다. –
개체의 산세가 문제가되는 것 같습니다. 그러나 SQLite가 잘못된 선택이라면 아마도 다른 접근 방식을 시도해야합니다. 그러나 어느 것? – Tim