V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gaayyy
V2EX  ›  程序员

大概 1000 万条数据,是使用 in-memory 数据库好还是自己手动写一个 DataTable?

  •  
  •   gaayyy · 2018-01-06 22:04:26 +08:00 · 2820 次点击
    这是一个创建于 1792 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用场景如下:

    1,总计大约 1000 万条 record,不超过 2000 万条,新增的量很少,主要是查询,少部分需要排序,查询也主要是两类,一类是对于某个整形型字段查询,一类是对某个 hash 字段查询。
    2,单条 record 由 8 个字段组成,其中包含有长度不固定的字段,比如 url 地址。
    3,具体实现使用 C#,如果手动写 DataTable,会以 JSON 或者 XML 方式保存为文件;如果采用数据库,先考虑 access。对于 Access 能否做到 in-memory 不熟悉,可能需要 google 或 so。
    4,没有并发方面的需求,单用户单机版使用,主要是方便检索。

    请各位有过这方面经验的大佬指点,谢谢。

    9 条回复    2018-01-07 15:56:13 +08:00
    gaayyy
        1
    gaayyy  
    OP
       2018-01-06 22:06:32 +08:00
    忘记说了,没有并发,但是查询会非常频繁,后续会使用脚本自动运行,不停的查询。
    owenliang
        2
    owenliang  
       2018-01-06 22:13:16 +08:00 via Android
    sqlite 是第一个想法
    fiht
        3
    fiht  
       2018-01-06 22:20:08 +08:00
    第一反应是要存 IP 的地理位置信息。
    像我这种菜鸡一般是直接上 Redis 或者 MongoDB 或者 MySQL,做好索引都没问题,查询频繁和并发应该是两个概念。脚本自动运行的话 一分钟一次的话怎么着也够用了。还是别手撸了,用现成的轮子比较好
    swulling
        4
    swulling  
       2018-01-06 22:30:34 +08:00
    sqlite in memory,每次启动的时候从硬盘加载一遍,然后定期同步到硬盘就好了
    winglight2016
        5
    winglight2016  
       2018-01-06 22:36:21 +08:00
    redis
    zhx1991
        6
    zhx1991  
       2018-01-06 22:41:26 +08:00
    如果查询能够满足的话, redis
    jpmorn
        7
    jpmorn  
       2018-01-06 22:47:15 +08:00
    估算

    1000 万就是 10M 一条 1k 就是 10G
    放内存都可以啊。。。
    beginor
        8
    beginor  
       2018-01-07 14:37:32 +08:00 via Android
    建议使用 sqlite,自带 inmemory mode,再做好索引,妥妥的!
    workwonder
        9
    workwonder  
       2018-01-07 15:56:13 +08:00 via Android
    sqlite 就是专为这种场景设计的吧
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1523 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 462ms · UTC 18:18 · PVG 02:18 · LAX 10:18 · JFK 13:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.