lujiajun1987
2008-09-22 10:01 阅读 553
已采纳

请教 java中怎么缓存大量的数据,比如100w条记录

我用OSCache缓存,从数据库中加载100w条记录,抛出outOfMemoryException
各位大虾有没有比较好的缓存大量数据的方案啊
100w条数据适合放在内存吗
谢谢了
[b]问题补充:[/b]
我现在查询了两个表的内容,表1的数据有25w条,表2的记录有19w条。
为什么到处表2的数据时出现OutOfMemoryException,
而导出表1的记录时却没有出现异常,而且表1的每条记录的数据量比表2的每条记录的数据量大。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    aidiyuxin aidiyuxin 2008-09-22 17:28

    表2有级联吧

    要不就是表1所占用的内存没析构

    所以溢出了

    点赞 评论 复制链接分享
  • lijie250 lijie250 2008-09-22 12:12

    100W太多了吧,肯定会溢出的,你先取一小部分数据啊,后面的数据按需要来取啊!

    点赞 评论 复制链接分享
  • weixin_42512160 weixin_42512160 2008-09-22 15:53

    1.按一定的数序分批缓存在内存中,缓存一批处理一批;
    2.持久化到文件系统,这样比内存慢比数据库快点;

    点赞 评论 复制链接分享
  • aidiyuxin aidiyuxin 2008-09-22 15:53

    肯定不能放在内存中,可以在内存中做一个视图的东西
    将重要的东西存在OSCache中,前台、后台全针对缓存维护

    100多万的数据不能全对你有用吧。。。

    点赞 评论 复制链接分享

相关推荐