原文出处:http://blog.chenlb.com/2010/05/mongodb-vs-mysql-query-performance.html
环境:同一台机器,装有 mongodb 1.4, mysql;内存 4g;两个数据库都只有 id 的唯一搜索;数据量 120w 左右,5w 个查询。对它们进行 id 或 ids 查询。
|
mongodb |
mysql |
total time |
avg time/per query |
total time |
avg time/per query |
1 id/per query |
11954ms, 00:11,954 |
0ms, 00,0 |
78613ms, 00:1:18,613 |
1ms, 00,1 |
10 id/per query |
35885ms, 00:35,885 |
0ms, 00,0 |
107274ms, 00:1:47,274 |
2ms, 00,2 |
20 id/per query |
63714ms, 00:1:3,714 |
1ms, 00,1 |
186398ms, 00:3:6,398 |
3ms, 00,3 |
5 thread, 20 id/per query |
- |
5ms, 00,5 |
- |
11ms, 00,11 |
10 thread, 20 id/per query |
- |
10ms, 00,10 |
- |
22ms, 00,22 |
从上表看:
每次查一个 id 的查询,在基本相同条件下 mongodb 速度是 mysql 的 7 倍。
每次查多个 id (10/20)的查询,mongodb 比 mysql 快 2 倍。
多线程下查多个 id,mongodb 比 mysql 快 1 倍。
从上面的测试来看:主要用在 id 查询或 ids 查询的应用中 mongodb 要优越 mysql。
在插入这些数据的时候,mongodb 更加快于 mysql,插入120w 到 mongodb 用 83159ms, ->00:1:23,159 就够了。mysql 有几十分钟。
当我在实际应用中(kw 级数据量),使用 mongodb 速度没有 mysql 好。原因可能有,mysql 的机器好,mongodb 使用不够得当。继续调整和优化程序吧……
附 mongodb 的 in 查询:
- BasicDBObject q = new BasicDBObject();
- BasicDBObject in = new BasicDBObject();
-
- void createQ(Integer[] ids) {
- q.put("id", in);
- in.put("$in", ids);
- }
分享到:
相关推荐
#### MySQL性能测试结果分析 **用例1**: 对于单次提交10000条记录,每次提交1000次的情况,MySQL耗时3912秒完成操作。在此过程中,观察到CPU使用率提高了10%至20%,内存使用增加了0.5GB至1GB。值得注意的是,在没有...
### MySQL与MongoDB性能对比分析 #### 测试背景与目的 随着大数据时代的到来,数据库的选择对系统的性能至关重要。本报告旨在通过一系列实验对比MySQL和MongoDB两种不同类型的数据库(关系型数据库与NoSQL数据库)...
02mongodb与mysql性能比较.mp4
使用Redis缓存来提升数据库查询性能 主要分为四个模块: 用户管理模块 :用户登录、注册、密码找回(通过邮箱方式)、用户信息修改、密码修改 仪表盘管理模块 :展示当前月收入及其环比(环比=(当前月收入 - 上个月...
MySQL 与 MongoDB 数据库架构介绍 MySQL 数据库架构介绍 MySQL 是由 Oracle 公司开发、发布和支持的受欢迎的开源关系数据库管理系统(RDBMS)。MySQL 将数据存储在表中,并使用结构化查询语句(SQL)来进行数据库...
MySQL和MongoDB是两种非常流行的数据库管理系统,它们分别代表了关系型数据库(RDBMS)和文档型数据库(NoSQL)的典型代表。在选择数据库系统时,了解它们的特性和差异至关重要。以下是对这两种数据库的详细比较: ...
MySQL 是一个广泛使用的开源关系型数据库管理系统,适用于需要事务处理和复杂查询的应用。SpringBoot 整合 MySQL 通常使用 `spring-boot-starter-jdbc` 或 `spring-boot-starter-data-jpa` 依赖,其中 JPA(Java ...
3. 降低 MySQL 数据库服务器的负载:通过将非结构化数据存储在 MongoDB 中,可以减少 MySQL 数据库服务器的负载,从而提高服务器的性能。 4. 节约 MySQL 的存储空间:混合存储策略可以节约 MySQL 的存储空间,从而...
MongoDB是一个流行的NoSQL数据库,以其文档型数据模型和高性能而知名。在`mongodb.rb`中,Ruby代码会配置Logstash的input插件来连接MongoDB服务器,指定数据库和集合,并定义查询来获取所需的数据。可能的配置项包括...
总之,MySQL与MongoDB的互相同步是一个复杂但重要的任务,涉及数据模型的转换、数据迁移的策略以及性能优化等多个方面。正确理解和运用这些知识,能帮助企业更好地管理和利用异构数据库中的数据。
SpringBoot提供了对MongoDB的良好支持,通过Spring Data MongoDB模块,开发者可以轻松地进行CRUD操作,并利用其丰富的查询功能。 **Maven** Maven是一个项目管理和综合工具,它可以帮助开发者管理项目的构建、依赖...
而MongoDB是一种文件导向的数据库管理系统,属于一种通称为NoSQL的数据库,是10gen公司旗下的开源产品,其内部数据存储的方式与传统的关系型数据有很大差别。NoSQL的全称是NotOnlySQL,也可以理解非关系型的数据库,...
【Navicat 连接MySQL、MongoDB工具详解】 Navicat是一款强大的数据库管理工具,支持多种数据库系统,包括MySQL和MongoDB等。它提供了一个直观的图形界面,使得数据库的管理和开发工作变得简单易行。以下是关于...
标题中的“canal”的MySQL与“redis/memcached/mongodb”的NoSQL数据实时同步方案,主要涉及了数据库间的数据迁移和实时同步技术。这个话题涵盖了多个关键知识点,包括: 1. **Canal**: Canal是阿里巴巴开源的一个...
在构建Java后端应用时,一个常见的架构是结合Spring MVC、MyBatis、MongoDB和MySQL,这样的组合提供了丰富的功能和灵活性。以下是基于这个架构环境搭建的详细知识点: 1. **Spring MVC 5.0.8**: Spring MVC是Spring...
它支持多种存储引擎,如InnoDB和MyISAM,这些引擎使用B-Tree或B+Tree索引结构,提供高效的查询性能。MySQL在Web应用、日志系统、数据仓库和嵌入式系统等领域有着广泛的应用。 相对地,MongoDB是非关系型数据库,它...
使用Redis缓存来提升数据库查询性能 主要分为四个模块: 用户管理模块 :用户登录、注册、密码找回(通过邮箱方式)、用户信息修改、密码修改 仪表盘管理模块 :展示当前月收入及其环比(环比=(当前月收入 - 上个...
在"exerciciopesquisa-master"这个项目中,可能包含了使用Java进行MongoDB和MySQL性能测试的代码和结果分析,可以深入研究各项指标,如查询速度、内存使用、吞吐量等,以更具体地了解两者在实际场景中的表现差异。...
在数据库的世界里,MongoDB、MySQL和Redis是三款非常重要的数据存储系统,它们各自有着独特的特性和用途。本文将深入探讨这三种数据库的核心概念、应用场景以及优缺点,帮助你全面理解它们在IT领域的角色。 首先,...
它支持MySQL协议,可以将大型表横向拆分为多个小表,分散到多个数据库服务器上,从而提高查询速度和系统并发能力。Mycat还具备负载均衡和故障切换功能,保障服务稳定性。 5. MongoDB:MongoDB是一款NoSQL数据库,以...