在postgres資料庫(安裝在Ubuntu上)中,有一些表,表不是很大,但也不是很小,5萬條記錄左右,經常需要檢索:
1.能否將其建立在記憶體中?
2.建立的方法,能不能給出例子?
有沒有能查看表資料是否保存到記憶體中的陳述句?
或者查看記憶體中保存了什么表的陳述句?
uj5u.com熱心網友回復:
不能建到記憶體中,5w條記錄又不多,為何要建到記憶體中uj5u.com熱心網友回復:
當資料量多的時候,怎么把資料添加到記憶體里面。uj5u.com熱心網友回復:
5W條不是很大,每次直接查就可以了,建索引,如果你的查詢比較復雜的話,使用存盤程序會快很多,你想常駐記憶體,貌似PG里沒有吧,使用其他語言,把它讀到記憶體就可以uj5u.com熱心網友回復:
pg_prewarm 擴展模塊 可以看一下。我也只是看過介紹,沒有實際使用過。
uj5u.com熱心網友回復:
pg目前還不支持記憶體表,可以試試vops模塊,不過這種方法表結構可能需要調整uj5u.com熱心網友回復:
如果資料夠熱的活,1.PG自然會把放到shared_buffer里去.
2.其實PG還是很依賴OS本身記憶體換頁機制的,如果真的熱資料,就算PG不放進shared_buffer,OS也會讓他常駐記憶體。
3.如果以上兩種機制都不能避免該表頻繁換入換出,證明該表不夠熱或者你該擴記憶體了。
uj5u.com熱心網友回復:
如果是非常在意查詢性能,且無需修改的靜態表,建議一次性的讀取到記憶體,用std::vector<>存盤
std::map<>、std::unorderd_map<>、管理索引。
性能比資料庫提高NNNNN倍。但這樣就無法與其他表做連接了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/11844.html
標籤:PostgreSQL
