zoukankan      html  css  js  c++  java
  • MongoDB与PostgresQL无责任初步测试

    PostgresQL一秒能插入多少条记录,MongoDB呢?读取的情况又如何?我写了一些简单的程序,得出了一些简单的数据,贴在这里分享,继续往下阅读前请注意下本文标题中的“无责任”,这表示此测试结果不代表真实的生产环境下的情况,只能说给大家一个比较直观的概念,可用于设计架构时候的估算。(量级上来说应该基本上是正确的)

    本次测试选择的服务器环境为:

    • VMWare虚拟机(双核,4G内存)
    • CentOS 7
    • MongoDB 3.2
    • PostgresQL 9.4
    • 客户端均为Java版
    • 单线程客户端

    插入数据比较简单,PostgresQL中创建这么一张表:

    CREATE TABLE realtime(
        id BIGINT PRIMARY KEY,
        longtitude DOUBLE PRECISION,
        latitude DOUBLE PRECISION,
        velocity DOUBLE PRECISION,
        soc DOUBLE PRECISION
    );

    对应地,MongoDB中的Document大致如此:

    {
        "_id" : NumberLong(1458587322),
        "longitude" : 0.5812149460333115,
        "latitude" : 0.23716701482457414,
        "velocity" : 0.9920389498763238,
        "soc" : 0.6602090307636349
    }

    数据随机生成,只有id为索引。

    插入100万条数据

    • MongoDB(带ACK)——约300秒(约3300条/秒
    • MongoDB(无ACK)——约35秒(月28000条/秒
    • PostgresQL——约670秒(约1500条/秒

    不带ACK的MongoDB的速度大约是PostgresQL的20倍,写入条目数可轻松破万。

    随机查询(无索引,600万条数据)

    • MongoDB——约2秒
    • PostgresQL——约0.5秒

    这次PostgresQL占优,速度大约是MongoDB的4倍。

    顺序读取一万条数据

    • MongoDB——约0.1秒
    • PostgresQL——约0.5秒

    这次MongoDB占优,速度大约是PostgresQL的5倍。

    也许你说MongoDB和PostgresQL是两种不同截然的数据库系统啊,干嘛放一起比?我当然知道,所以才拿出来比,(呵呵)比较后才知道什么情况下用什么样的数据库,怎么样才能将其能力发挥到最好嘛,对不对?于是有了下面这些“无责任”的结论(或者说小小建议了):

    • PostgresQL功能强大通用性好可靠性高适用面广(嗯?我的测试并未反映出这点啊?请执行忽略掉这些细节)
    • MongoDB适合于逻辑简单,存储量大,性能要求高,而可靠性要求相对不高的场合
    • 存储量巨大的情况下,MongoDB的查询必须得依赖索引
    • MongoDB的索引越少性能越好,磁盘空间消耗越少(索引能不要就不要),和前一点做一些自我平衡吧

    实际的情况会有哪些不同?实际中性能肯定是要比这个高的,我这次只是用了一台本地的虚拟机用单线程访问尝试了一下,真实环境下的话肯定是高配置的服务器主机加多线程。一般来说关系型数据库(PostgresQL这种)在单台主机上的表现确实存在一个性能瓶颈,每秒写入万条对关系型数据库来说就很吃力,如果遇到了这个瓶颈,就可以考虑调整系统架构,使用NoSQL(MongoDB这种)分摊一些数据存储了,当然了,逻辑复杂,事务性要求高的数据还是得用PostgresQL,MongoDB则用于存那些“又大又傻”的数据。

  • 相关阅读:
    SQL-----DML
    C#常见笔试题
    事务
    HTM5制作的闹钟
    InforPath获取当前用户
    邮件中的样式问题
    InforPath的几个基础性的东西
    代码读取InforPath内容并进行修改
    python操作mysql(4)--增删改查
    python操作mysql(3)--链接数据库
  • 原文地址:https://www.cnblogs.com/guogangj/p/5311536.html
Copyright © 2011-2022 走看看