硬件环境:
一台华硕笔记本 AMD Athlon(tm) X2 Dual-Core ,1GB
软件环境:
单机测试 ,非集群环境 ,python脚本读取一个含60W条数据的文件,插入数据库。
测试方法:
批量插入n条数据,测试cpu、内存、执行时间数据。
测试结果
数据量 | cpu使用率 | 内存使用率 | 执行时间 |
---|---|---|---|
1000 | 99% | 3% | 0.19 |
5000 | 99% | 4% | 0.9s |
1W | 99$ | 6% | 1.9s |
10W | 99% | 20% | 19s |
结果分析:
在环境下,随着一次批量插入的数据量的增加,平均单个数据插入耗时不变,cpu一直处于饱和状态,内存使用路不断增加。故,一次插入10000条以上数据不合适。
PS:python在读取60W条数据的文件,保存到数组中,耗时不到一秒,这是java远不能及的。。。。
mongodb插入数据的时候,数据库中本来就有几十万条数据,插入的速度没有因此而降低。
索引性能分析
在插入数据的时候,如果数据库简历了索引,会有一些性能损耗,但是查询的时候,如果使用索引速度会大大提升。
是否使用索引 | 插入1W条数据耗时 | 从120W条数据中查找一条数据【根据索引查找】 |
是 | 1.9s | 0s |
否 | 1.8s | 2.3s |
结论:用索引,太好了,插入的时候那点性能损耗可以忽略。【这不废话吗。。。】