有一个关于数据库百万级的问题问一下

2019-03-11 12:45:45 +08:00
 13192262269
要将废卡,坏卡进行回收(要在海量(百万级)数据里进行查询,然后导出卡信息(过十万级)给制卡商,让制卡商制卡)

有没有老哥,给个好的思路方案,如何高性能实现上面要求?

公司项目说明:
1.一个手机卡资源管理系统,java 语言为主,使用 oracle 数据库
2.oracle 采用分级存储
4839 次点击
所在节点    程序员
46 条回复
yqsas
2019-03-11 22:10:24 +08:00
sharding-jdbc
@jzmws
wangluofansi
2019-03-11 22:47:02 +08:00
给你几个建议:
out of memory 从两方面优化:①只查询所需字段而不是 select *,如 select card_info from card_table ;②分批,假设每次查询一万条记录,如果有自增 id,那么可以这样查询,select id, card_info from card_table where id > last_id limit 10000,其中 last_id 是上次查询出来的最大 id ;
索引方面优化:这个本来需要根据表结构和查询条件来,但是可以先简单粗暴地对 where 涉及字段建索引,explain 一下看看效果。
beggarvip
2019-03-11 22:56:01 +08:00
几百万导内存里,自建数据结构,哈希,或堆,或建树...等等,几十万查询,应该在一秒内
wangluofansi
2019-03-11 22:56:22 +08:00
对了,分批的时候需要 order by id
hhhzccc
2019-03-12 10:38:58 +08:00
直接写 sql 干起来!
moxunpw
2019-03-12 10:56:43 +08:00
百万的数据,没啥压力吧。。。我现在 3000w+数据用 MySQL 查 SQL 也好好的。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/543272

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX