java 板


LINE

想请问一下 JAVA有没有方法可以让资料用类似资料库的方式储存跟存取在记忆体内 目前我有一个资料库如下 -- A | B | C ---------------- 1 | 1 | 5 1 | 2 | 5 2 | 3 | 4 -- 可是除了资料数量很大以外 同时我也需要一直跟资料库存取 造成大多数时间都在跟资料库做指令跟等待资料库回应 想请问一下是否有其他方法可以让资料放在记忆体内可以快速存取的方法 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.117.80.55
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1468837927.A.DDB.html
1F:推 darkk6: 要达成很简单,问题是你是还是要用 SQL 的方式去存取 07/18 19:01
2F:→ darkk6: 修正: "是不是"还是要用 SQL.... 07/18 19:02
3F:→ gw10313: 如果可以的话不用SQL也没关系 07/18 19:04
4F:→ gw10313: 只是还是需要有类似SQL的抓取资料的方法就可以 07/18 19:05
5F:→ gw10313: 目前我都是在用资料去比对A栏位的值然後抓B跟C 07/18 19:05
6F:推 darkk6: 还是要用 SQL query 语法去抓资料就是了? 07/18 19:10
7F:→ gw10313: 不限SQL 只要能抓出资料就可以 07/18 19:14
8F:推 darkk6: 那其实可以自己写一个 class 用 Map 和 List 去做就好啦 07/18 19:30
9F:→ gw10313: 请问是什麽意思 我不太懂 囧 07/18 21:06
10F:→ eieio: 你是不懂什麽是 Map,还是不懂怎麽用 Map 做? 07/18 21:16
11F:→ gw10313: 我是不太懂怎麽用MAP做 没有一个想法要怎麽把这东西 07/18 21:20
12F:→ gw10313: 转换成 我要的东西 07/18 21:20
13F:→ Expsun: 你写Java可是不知道Map @@ 可以去官网看Collections 07/18 21:41
14F:→ gw10313: 我知道MAP 只是没有一个想法要怎麽去用再我要的东西上面 07/18 21:45
15F:→ gw10313: 我先来看看好了 07/18 21:46
16F:推 SHANGOYANYI: memcache / coherence 07/18 21:49
17F:推 steven11329: 问题是你的资料量多大?记忆体够放吗? 07/18 22:21
18F:推 ripple0129: HSQLDB不知道是不是你要的 07/18 23:23
19F:→ gw10313: 目前是三十万笔资料左右 感觉应该够(?) 07/18 23:40
20F:→ gw10313: 因为我目前程式都写好了 主要是太多一笔一笔SQL的呼叫 07/18 23:42
21F:→ gw10313: 所以造成程式效率低落 想要找其他方法加速程式效率 07/18 23:43
22F:→ gw10313: HSQLDB 我也会去看看 希望能找到方法解决 07/18 23:43
23F:推 p23j8a4b9z: 你这应该是後面db要处理 跟前面没什麽关系吧 07/19 00:34
24F:→ p23j8a4b9z: 如果要写入 最好是包成一个档案在写入 07/19 00:36
25F:推 p23j8a4b9z: 或是用connection pool 开多个去存取 07/19 00:38
26F:→ p23j8a4b9z: 我倒是觉得这个跟你写法没什麽关系 不做处理一次run一 07/19 00:39
27F:→ p23j8a4b9z: 个sql会慢非常正常 07/19 00:39
28F:推 haha02: 我觉得你把存取资料库的方法跟呼叫的方式描述一下吧 07/19 00:46
29F:→ haha02: 搞不好根本就是写法的问题 例如每下一次SQL开关一次连线 07/19 00:47
-- 我存取资料库的方式是用statement去对我的MYSQL资料库做存取 然後我下的SQL只有简单的 "select * from tableA where A=1;" 其中我的程式有一个do while回圈主要的SQL都下在里面 Statement stmt = conn.createStatement(); do{ SQL="Select * from tableA where A="+变数; //主要是回圈变数会变 rs=stmt.executeQuery(SQL); //执行每次的SQL if(rs.next()){ //如果有这笔资料就做我要的计算 do something; } }while(); -- 大概是这样 我大概知道是太常跟资料库下SQL 每笔资料进来都有新的变数 所以我就会跟资料库下SQL 可是这样造成我程式效率低落 所以才来这边想要请问一下大家有什麽比较好的方法 前面没有说清楚真的不好意思 -- ※ 编辑: gw10313 (140.117.80.55), 07/19/2016 04:07:54
30F:→ jej: TableA有三十万笔 用do while 要很快... 07/19 05:04
31F:→ jej: ColumnA要做index吧 记忆体式的db或许适合你 07/19 05:07
32F:→ jej: 不然就是 30万一次查出来 用java8的stream 记忆体够就行 07/19 05:11
33F:→ gw10313: 我有对columnA做index 还是觉得很慢QQ 07/19 08:49
34F:→ dennisxkimo: 我看过一个文章 少用select * 07/19 11:41
35F:→ dennisxkimo: 我有些大table会用到TEMPORARY TABLE 07/19 11:51
36F:→ dennisxkimo: 不过我资料是静态历史纪录 条件下资料丢temp然後分析 07/19 11:54
37F:推 yyc1217: 搜寻java in-memory indexed database就有很多library 07/19 15:11
38F:推 haha02: 改用PreparedStatement应该可以改善一点点 07/20 22:10
39F:→ marsyang1: guava的Loading Cache, or 试试redis 07/21 20:49







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP