大佬们,我数据量一共 60 亿,现在插入了 6 亿左右,一开始的时候 每次 insert_many 只需要 0.05 秒 1000 条
目前已经插入 6 亿左右,现在 1000 条数据有时候需要 20 秒,非常的慢。
用什么办法可以调优一下呢?
mongo 是单点的,部署在一台机器上,没有分片和副本。
试过 bulk_write 性能是一样的
1
sdot96 2020-07-10 13:06:41 +08:00 via Android
机器的运行情况?索引情况?数据表能不能做水平分割?
|
2
tikazyq 2020-07-10 13:18:05 +08:00
单机的话,你这个扩展起来问题会很多
几个优化点: 1. 分表( Sharding ) 2. 不要创建索引 3. 选择其他技术方案,例如 Hive 、HBase 60 亿条数据,这种量级的数据应该更适合 Hive 或者 HBase 吧,做分布式储存不香么,单点来搞大数据你这不是给自己挖坑么 |
3
22too 2020-07-10 13:25:03 +08:00
这个数据量确实会出问题的。之前遇到过。
|
4
weizhen199 2020-07-10 15:02:10 +08:00
考虑下几个列式数据库呗。100e 以下应该都还行。
|
7
dtgxx OP @sdot96 #1 目前数据集合做了分隔,每个集合数据量差不多 200 万,内存 64G available 剩余 20g 左右,cpu48 核 负载 20 左右 数据字段有六个,只有一个字段做了索引
@tikazyq 之前考虑分集合存储,确实没想到插入这么的慢。。主要都是历史数据,想一次导入,后面就轻松了。索引的话,不创建后期查询就非常慢了,所以还是得创建。 @22too @weizhen199 @tikazyq HBase 在类似的情况下插入,不会数据越多越慢吗?是因为列式存储? @specture 目前我有六个,后期查询的时候需要一个字段做索引查询,不知道有没有什么好的方式。。。感觉索引还是得要的。 |
8
anzu 2020-07-10 17:51:24 +08:00
插完再建索引?
|