2016-09-25 53 views
1

我正在處理一個沉重的數據集,我選擇以純二進制格式存儲並以塊的形式加載到內存中。然而,即使是最小的塊也要超過我的計算機內存(16GB),所以我必須進一步對它們進行分割或找到另一種解決方案。整個數據集大約有半個TB。如果數據庫大小超過sqlite中的內存怎麼辦?

我在維基上看到,sqlite可以處理多達32TB的數據,這很酷。但是,我無法弄清楚是否必須有32TB的內存才能使用它,或者您可以擁有更小的內存並將其存儲在硬盤上。我的理解是,它應該是可能的,我需要非常簡單的操作,如添加行,讀取行,選擇具有給定值的所有行等。

如果你們幫助我,我將不勝感激,因爲我不想投資學習sqlite只是爲了瞭解它不按我想的方式工作。此外,如果你有任何洞察力,你認爲可能會有所幫助,請分享。

+0

你應該沒問題。 sqlite會自動爲你管理內存,只加載它所需的數據庫部分。 – redneb

回答

0

大多數數據庫(包括SQLite)都可以以塊爲單位處理數據,即它們只需要將一條記錄一次加載到內存中。 (但是使用更多內存進行緩存會使事情變得更快。)此外,如果中間數據變得太大,則可將其移入temporary files。這是默認行爲,所以沒有明確地通告。

將整個數據庫存儲在內存is possible中,但只對臨時數據不會被保存。

+0

謝謝,夥計,這非常有幫助! – pandreyanov

相關問題