[問題] 資料存取的問題

作者: gw10313 (GoCrazy)   2016-07-18 18:32:04
想請問一下
JAVA有沒有方法可以讓資料用類似資料庫的方式儲存跟存取在記憶體內
目前我有一個資料庫如下
作者: darkk6 (Mr. Pan)   2016-07-18 19:01:00
要達成很簡單,問題是你是還是要用 SQL 的方式去存取修正: "是不是"還是要用 SQL....
作者: gw10313 (GoCrazy)   2016-07-18 19:04:00
如果可以的話不用SQL也沒關係只是還是需要有類似SQL的抓取資料的方法就可以目前我都是在用資料去比對A欄位的值然後抓B跟C
作者: darkk6 (Mr. Pan)   2016-07-18 19:10:00
還是要用 SQL query 語法去抓資料就是了?
作者: gw10313 (GoCrazy)   2016-07-18 19:14:00
不限SQL 只要能抓出資料就可以
作者: darkk6 (Mr. Pan)   2016-07-18 19:30:00
那其實可以自己寫一個 class 用 Map 和 List 去做就好啦
作者: gw10313 (GoCrazy)   2016-07-18 21:06:00
請問是什麼意思 我不太懂 囧
作者: eieio (好多目標)   2016-07-18 21:16:00
你是不懂什麼是 Map,還是不懂怎麼用 Map 做?
作者: gw10313 (GoCrazy)   2016-07-18 21:20:00
我是不太懂怎麼用MAP做 沒有一個想法要怎麼把這東西轉換成 我要的東西
作者: Expsun (無限燃燒)   2016-07-18 21:41:00
你寫Java可是不知道Map @@ 可以去官網看Collections
作者: gw10313 (GoCrazy)   2016-07-18 21:45:00
我知道MAP 只是沒有一個想法要怎麼去用再我要的東西上面我先來看看好了
作者: SHANGOYANYI (彥一)   2016-07-18 21:49:00
memcache / coherence
作者: steven11329 (清新柳橙)   2016-07-18 22:21:00
問題是你的資料量多大?記憶體夠放嗎?
作者: ripple0129 (perry tsai)   2016-07-18 23:23:00
HSQLDB不知道是不是你要的
作者: gw10313 (GoCrazy)   2016-07-18 23:40:00
目前是三十萬筆資料左右 感覺應該夠(?)因為我目前程式都寫好了 主要是太多一筆一筆SQL的呼叫所以造成程式效率低落 想要找其他方法加速程式效率HSQLDB 我也會去看看 希望能找到方法解決
作者: p23j8a4b9z (我是小牙籤~)   2016-07-19 00:34:00
你這應該是後面db要處理 跟前面沒什麼關係吧如果要寫入 最好是包成一個檔案在寫入或是用connection pool 開多個去存取我倒是覺得這個跟你寫法沒什麼關係 不做處理一次run一個sql會慢非常正常
作者: haha02 (來人!上夾棍!)   2016-07-19 00:46:00
我覺得你把存取資料庫的方法跟呼叫的方式描述一下吧搞不好根本就是寫法的問題 例如每下一次SQL開關一次連線
作者: jej (晃奶大馬桶)   2016-07-19 05:04:00
TableA有三十萬筆 用do while 要很快...ColumnA要做index吧 記憶體式的db或許適合你不然就是 30萬一次查出來 用java8的stream 記憶體夠就行
作者: gw10313 (GoCrazy)   2016-07-19 08:49:00
我有對columnA做index 還是覺得很慢QQ
作者: dennisxkimo (Dennis(一上B就糟糕))   2016-07-19 11:41:00
我看過一個文章 少用select *我有些大table會用到TEMPORARY TABLE不過我資料是靜態歷史紀錄 條件下資料丟temp然後分析
作者: yyc1217 (somo)   2016-07-19 15:11:00
搜尋java in-memory indexed database就有很多library
作者: haha02 (來人!上夾棍!)   2016-07-20 22:10:00
改用PreparedStatement應該可以改善一點點
作者: marsyang1 (Mars)   2016-07-21 20:49:00
guava的Loading Cache, or 試試redis

Links booklink

Contact Us: admin [ a t ] ucptt.com