[问题] 资料存取的问题

楼主: 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