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

2018-01-06 22:04:26 +08:00
 gaayyy

使用场景如下:

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

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

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

1000 万就是 10M 一条 1k 就是 10G
放内存都可以啊。。。
beginor
2018-01-07 14:37:32 +08:00
建议使用 sqlite,自带 inmemory mode,再做好索引,妥妥的!
workwonder
2018-01-07 15:56:13 +08:00
sqlite 就是专为这种场景设计的吧

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

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

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

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

© 2021 V2EX