postgis mysql sqlite mongodb速度对比
前言: 最近做了一下几个数据库之间的速度对比,最后的结果还挺出人意料的,特此记录一下。
本文使用的是同一份数据,分别存储到了postgis、mysql、sqlite和mongodb中,数据共70万左右,数据量并不大,只是为了满足测试。
postgis、mysql、sqlite都是关系型数据库,我们来看下表结构:
再来看下mongodb中的数据结构:
本文使用的是SSM(Spring SpringMVC MyBatis)架构,因为本人不会在MyBatis中配置mongodb,所以只配置了postgis、mysql、sqlite的环境参数:
<environments default="mysql">
<!-- 数据库环境 -->
<environment id="postgis">
<!-- 使用JDBC使用管理 -->
<transactionManager type="JDBC"/>
<!-- 数据源配置 -->
<dataSource type="POOLED">
<property name="driver" value="${postgis.driver}"/>
<property name="url" value="${postgis.url}"/>
<property name="username" value="${postgis.username}"/>
<property name="password" value="${postgis.password}"/>
</dataSource>
</environment>
<!-- 数据库环境 -->
<environment id="mysql">
<!-- 使用JDBC使用管理 -->
<transactionManager type="JDBC"/>
<!-- 数据源配置 -->
<dataSource type="POOLED">
<property name="driver" value="${mysql.driver}"/>
<property name="url" value="${mysql.url}"/>
<property name="username" value="${mysql.username}"/>
<property name="password" value="${mysql.password}"/>
</dataSource>
</environment>
<!-- 数据库环境 -->
<environment id="sqlite">
<!-- 使用JDBC使用管理 -->
<transactionManager type="JDBC"/>
<!-- 数据源配置 -->
<dataSource type="POOLED">
<property name="driver" value="${sqlite.driver}"/>
<property name="url" value="${sqlite.url}"/>
<property name="username" value=""/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
mongodb的数据库连接是直接从代码中读取配置文件以后进行的:
String resource=this.getClass().getClassLoader().getResource("/").getPath() "mongodb.properties";
InputStream inStream = new FileInputStream(new File(resource));
Properties properties = new Properties();
properties.load(inStream);
String host=properties.getProperty("host");
String port=properties.getProperty("port");
String database=properties.getProperty("database");
String table=properties.getProperty("table");
MongoClient mongoClient = new MongoClient( host , Integer.parseInt(port) );
MongoDatabase mongoDatabase = mongoClient.getDatabase(database);
MongoCollection<Document> collection = mongoDatabase.getCollection(table);
long startTime = System.currentTimeMillis(); //获取开始时间
MongoCursor<Document> iterator = collection.find().iterator();
long endTime = System.currentTimeMillis(); //获取结束时间
infoLogger.info("从mongodb中读取数据共用时" (endTime-startTime) "ms");
然后分别统计查询1、100、1000、10000、100000、700000条数据的时间,如下所示:
其中mongodb的时间有一些问题,因为我在查询的时候发现最多只能查出来500多条,具体原因未找到,如果有人知道的话,烦请告诉我一下,谢谢。
从上面的表格来看,sqlite是关系型数据库中最快的,紧接着是postgis,出乎我的意料。
总结: 本文对比了几种数据库的查询速度,数据量并不大,只能说明一小部分问题,感兴趣的同学可以进行更深入的测试,不对之处欢迎指正,回见。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhfhig
系列文章
更多
-
TLS双向验证的java模拟FTPS的Server端和client端
-
已解决urllib.request.urlretrieve下载文件报错403
-
异常检测论文阅读一——DRÆMA discriminatively trained reconstruction embedding for surfaceanomaly detection
-
严重: Caught exception while allowing TestExecutionListener [org.springframework.test.context.support
-
在 IDEA 配置 JDK 18 输出文乱码问题解决
-
The Rust Programming Language - 第9章 错误处理 - 9.2 Result和可恢复的错误
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13