Mongodb和Mysql的性能分析

服务器配置:

CPU: 1核    内存: 2048 MB (I/O优化)   网络带宽:1M

centos 7.0

MongoDB 3.2
Mysql   5.6

服务器表数据量1184545条

MongoDb数据是由Mysql导入,保证数据一致

实验准备执行语句为:

mysql:

SELECT *
FROM sharelooks_30d m
WHERE m.lng>_lng1 AND m.lng<_lng2 AND m.lat>_lat2 AND m.lat<_lat1
ORDER BY ID DESC LIMIT 30;

MongoDB:

db.sharelooks_30d.find(
{"lng":
{"$gt":lng1, "$lt":lng2},
"lat":
{"$gt":lat2, "$lt":lat1}
}
).sort({"ID":-1}).limit(30)

第一次:mongodb未添加索引:1.5S

Mysql:已添加索引:1.23S

Mongodb添加索引后:

执行时间为 0.2秒

更改输入参数:

My是切开:5.412S

Mongodb:1.1S

所以大概查询相差5-6倍差距

时间: 2024-10-01 07:37:03

Mongodb和Mysql的性能分析的相关文章

MySQL优化 - 性能分析与查询优化

MySQL优化 - 性能分析与查询优化 优化应贯穿整个产品开发周期中,比如编写复杂SQL时查看执行计划,安装MySQL服务器时尽量合理配置(见过太多完全使用默认配置安装的情况),根据应用负载选择合理的硬件配置等. 1.性能分析 性能分析包含多方面:CPU.Memory.磁盘/网络IO.MySQL服务器本身等. 1.1 操作系统分析 常规的操作系统分析,在Linux中通常包含一些性能监控命令,如top.vmstat.iostat.strace.iptraf等. 1.内存:内存是大项,高查询消耗大量

MySQL 索引性能分析概要

上一篇文章 MySQL 索引设计概要 介绍了影响索引设计的几大因素,包括过滤因子.索引片的宽窄与大小以及匹配列和过滤列.在文章的后半部分介绍了 数据库索引设计与优化 一书中,理想的三星索引的设计流程和套路,到目前为止虽然我们掌握了单表索引的设计方法,但是却没有分析预估索引耗时的能力. 在本文中,我们将介绍书中提到的两种分析索引性能的方法:基本问题法(BQ)和快速估算上限法(QUBE),这两种方法能够帮助我们快速分析.估算索引的性能,及时发现问题. 基本问题法 当我们需要考虑对现有的 SELECT

MySQL优化 - 性能分析与查询优化(转)

出处:  MySQL优化 - 性能分析与查询优化 优化应贯穿整个产品开发周期中,比如编写复杂SQL时查看执行计划,安装MySQL服务器时尽量合理配置(见过太多完全使用默认配置安装的情况),根据应用负载选择合理的硬件配置等. 1.性能分析 性能分析包含多方面:CPU.Memory.磁盘/网络IO.MySQL服务器本身等. 1.1 操作系统分析 常规的操作系统分析,在Linux中通常包含一些性能监控命令,如top.vmstat.iostat.strace.iptraf等. 1.内存:内存是大项,高查

玩转mongodb(五):mongodb 3.0+ 查询性能分析

mongodb性能分析方法:explain() 为了演示的效果,我们先来创建一个有200万个文档的记录.(我自己的电脑耗了15分钟左右插入完成.如果你想插更多的文档也没问题,只要有耐心等就可以了.) 1 for(var i=0;i<2000000;i++){ 2 db.person.insert({"name":"ryan"+i,"age":i}); 3 } MongoDB 3.0之后,explain的返回与使用方法与之前版本有了很大的变化

mysql语句性能分析案例

写法不一样而功能完全相同的两条 SQL 的在性能方面的差异.示例一需求:取出某个 group(假设 id 为 100)下的用户编号(id),用户昵称(nick_name).用户性别( sexuality ) . 用 户 签 名 ( sign ) 和 用 户 生 日 ( birthday ) , 并 按 照 加 入 组 的 时 间(user_group.gmt_create)来进行倒序排列,取出前 20 个.解决方案一.SELECT id,nick_nameFROM user,user_group

mysql Explain 性能分析关键字

EXPLAIN 输出格式select_typetabletypepossible_keyskeykey_lenrowsExtra MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化. EXPLAIN 命令用法十分简单, 在 SELECT 语句前加上 Explain 就可以了, 例如: EXPLAIN SELECT * from user_info WHERE id < 300; 各列的含义如下:

mysql语句性能分析(一)

1.使用explain语句去查看分析结果 如explain select * from test1 where id=1; 会出现:id  selecttype  table  type possible_keys  key key_len  ref rows  extra各列. 其中, type=const表示通过索引一次就找到了: key=primary的话,表示使用了主键: type=all,表示为全表扫描: key=null表示没用到索引.type=ref,因为这时认为是多个匹配行,在联

MySQL监控、性能分析——工具篇

MySQL越来越被更多企业接受,随着企业发展,MySQL存储数据日益膨胀,MySQL的性能分析.监控预警.容量扩展议题越来越多.“工欲善其 事,必先利其器”,那么我们如何在进行MySQL性能分析.监控预警.容量扩展问题上得到更好的解决方案,就要利用各种工具来对MySQL各种指标进行分 析.本文是读书笔记,下面提及的工具,读者可能都用过,或打算准备是使用.MySQL服务器的发布包没有包含那些能完成许多常见任务的工具,例如监控服务器的工具.比较服务器间数据的工具.我们把这些工具分成以下几类:界面.监

Mysql 索引优化分析

MySQL索引优化分析 为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字段的意义.助你了解索引,分析索引,使用索引,从而写出更高性能的sql语句.还在等啥子?撸起袖子就是干! 案例分析 我们先简单了解一下非关系型数据库和关系型数据库的区别. MongoDB是NoSQL中的一种.NoSQL的全称是Not only SQL,非关系型数据库.它的特点是性能高,扩张性强,模式灵