zoukankan      html  css  js  c++  java
  • C#下多线程下几种免费数据库的性能比较的结论

    待测试的免费数据库有SQLite、Access、MySQL、MongoDB:

    由于大部分应用都是在多线程下进行的,要进行线程同步、代码加锁之类的处理。在说多线程之前,先说在单线程前提下的测试结果,那就是Access的存取数据效率要低很多,其它三种的都比较快,相互之间差不多。下面是多线程下的结论:

    1、SQLite和Access:两种是常见的文件型数据库,所以放在一起比较。结论是,

    1)二者的数据存取效率差不多,根据线程数的不同,会有-2%-10%的差距,SQLite稍微好一些;

    2)Access的资源占用(CPU和内存)比SQLite要明显高很多,根据线程数和测试程序的不同,会有80%-190%的差距。

    2、MySQL:这种数据库是有服务器的。结论是,

    1)MySQL的数据存取效率要比上文提到的SQLite和Access要明显高,根据线程数和要插入的数据数目的不同,会有12%-1000%的差距;

    2)不算服务器的资源占用的话,MySQL的资源占用和SQLite差不多,根据线程数和测试程序的不同,会有-10%-15%的差距。

    3、MongoDB:这种数据库也是有服务器的,不过是非关系型的数据库,使用时需要自根据设计的表的不同定义相应的数据结构类来辅助操作。结论是,

    1)MongoDB的数据存取效率高的令人惊讶,有MySQL的1-100倍(具体数据忘了记了,吓住我了),多线程的存取效率可以与多线程下的SQLite的效率媲美。

    2)MongoDB的资源占用要高很多,相同前提下,其它数据库cpu有1%-60%的变化范围,最终稳定在3%-20%的范围,而MongoDB会占满CPU。

    All Comments are Welcome.

  • 相关阅读:
    php页面调用微信扫一扫
    mysql大数据表添加字段
    Maven使用本地包的打包和安装(举例微信SDK)
    谈谈统计学正态分布阈值原理在数据分析工作中的运用
    深入剖析 RSA 密钥原理及实践
    Kafka 原理以及分区分配策略剖析
    jenkins+docker实现自动编译、打包、构建镜像、容器部署
    php7安装ldap扩展
    jenkins 简单实现php集成上线部署
    Jenkins 流水线(Pipeline)
  • 原文地址:https://www.cnblogs.com/yao2yao4/p/2808339.html
Copyright © 2011-2022 走看看