首页数据库mongodb数据库?MySQL数据库下载

mongodb数据库?MySQL数据库下载

编程之家2026-05-191176次浏览

各位老铁们,大家好,今天由我来为大家分享mongodb数据库,以及MySQL数据库下载的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

mongodb数据库?MySQL数据库下载

mongodb数据库适合做什么

mongodb众所周知不支持事务,所以需要强事务的业务根本不能考虑mongodb。

mongodb的优势就是文档存储:

1.业务经常变动,需要不时的添加字段,那么mongodb比较适合,关系型数据库添加字段的复杂度也还好

2.嵌套文档,业务数据比较复杂,适合嵌套文档式存储,那么mongodb非常合适,这个关系型数据库比较难搞,虽然MySQL和pg也有文档存储,但MySQL的不成熟,pg毕竟现在生产中使用还是偏少,个人也不了解,这里不谈。但这不仅仅这一点优势,具体下面会细说。

3. upsert支持,查询速度也不慢

4.高可用的副本集支持

mongodb数据库?MySQL数据库下载

5.查询语法非常丰富,嵌套文档查询功能非常强大,不是重度用户可能不能理解

下面说说一个具体的使用事例:

项目的一条数据在10kb左右,如果使用关系型数据库那么需要将这条数据拆分成大概几百条左右,建造多个表,设计较复杂,这种数据大概在一百万条左右,想想拆分后在十几亿的数据量就可怕。打平后的数据什么DB也都可以拿下,只是一百万变十几亿比较恐怖而已。

如果采用MySQL存储,每次查询需要使用外键查询多个表,从这些表中拉取数据,性能肯定要下降很多,比不上只在一个表查询,而且只拉取少两个数量级的数据。查询也还好,业务允许可以对结果做缓存,放到redis里去。

但是重点来了,需求要增量更新部分数据,这时候需要更新多个表,根本没法做到原子性(注意事务不是原子操作),当然也可以使用cas等技术补偿,达到最终一致性。但使用mongodb存储只需要update一条数据,对相应的嵌套文档中内容更新,可以做到原子性,是不是很方便?

推荐学习《python教程》

mongodb数据库?MySQL数据库下载

具体说说该项目的难点,查询无法使用缓存,可能会很吃惊,但是业务决定了确实做不了,而且增量更新的量达到上万的QPS,如果不能保证原子性想想多么可怕!

所以mongodb在这里帮了大忙,关系型数据库解决不了这个难题。

有人可能要问,mongodb没有事务,上游数据写入也会有问题,你不可能所有数据都存一个表吧?

当然不是的,我们mongodb里的数据是从MySQL中清洗出来存到mongodb中的,mongodb只做单点的业务需求,综合的数据还是在MySQL中。

此项目我们用了上百个副本集,保证系统的高可用,这些副本集配置只要一条shell就搞定,如果用MySQL的主从不知道怎么配(我自己不懂),估计DBA得忙死,而该项目完全不需要也没用到DBA。

说了这么多mongo的优点,也说说他的缺点:

1.查询优化器和MySQL没法比

2.不支持reload,只能冷重启,初始化配置的时候比较麻烦

3.没有事务,不敢存储第一手数据,多用来做备份数据的存储

mongodb可以做很多事情,取决于你脑洞,性能不差,存一些相对不重要的数据,mongodb嵌套文档功能强大,多看看官方文档挖掘挖掘有用信息,每次都能发现惊喜。

mongodb数据库怎么使用

MongoDB是由10gen团队开发的基于分布式存储的开源数据库系统,使用C++编写。MongoDB作为一个文档型数据库,其中数据以键值对的方式来存储。

下面我们来看下MogoDB的基本使用。

1、连接MongoDB数据库

使用如下命令来连接MongoDB数据库

mongo

图1连接MongoDB数据库

2、查看目前所使用的数据库。

在MongoDB中,想查看使用的是哪个数据库,可以使用如下命令来查看。

db

图2查看所使用的数据库

3、查看有哪些数据库。

在MongoDB中存在着许多个数据库,对于有哪些数据库,可以使用如下命令来查看。

show db

图3查看MongoDB中所有的数据库

4、创建数据库。

现阶段所存在的数据库如果不能满足要求,可以使用如下命令来创建新的数据库。

use database_name

其中database_name则代表所要创建的数据库名字,下面将演示创建一个名为offcn的数据库。

use offcn

图4创建offcn数据库

5、删除数据库

当数据库没有作用时,可以将数据库删除从而释放所占用的空间资源。使用如下命令来进行对数据库进行删除,在删除前应该先选中所要删除的数据库。

use offcn

db.dropDatabase()

图5删除数据库

mongodb的基本概念

(1)文档

文档是 MongoDB中数据的基本单位,类似于关系数据库中的行(但是比行复杂)。多个键及其关联的值有序地放在一起就构成了文档。不同的编程语言对文档的表示方法不同,在JavaScript中文档表示为:

{“greeting”:“hello,world”}

这个文档只有一个键“greeting”,对应的值为“hello,world”。多数情况下,文档比这个更复杂,它包含多个键/值对。例如:

{“greeting”:“hello,world”,“foo”: 3}

文档中的键/值对是有序的,下面的文档与上面的文档是完全不同的两个文档。

{“foo”: 3,“greeting”:“hello,world”}

文档中的值不仅可以是双引号中的字符串,也可以是其他的数据类型,例如,整型、布尔型等,也可以是另外一个文档,即文档可以嵌套。文档中的键类型只能是字符串。

(2)集合

集合就是一组文档,类似于关系数据库中的表。集合是无模式的,集合中的文档可以是各式各样的。例如,{“hello,word”:“Mike”}和{“foo”: 3},它们的键不同,值的类型也不同,但是它们可以存放在同一个集合中,也就是不同模式的文档都可以放在同一个集合中。既然集合中可以存放任何类型的文档,那么为什么还需要使用多个集合?这是因为所有文档都放在同一个集合中,无论对于开发者还是管理员,都很难对集合进行管理,而且这种情形下,对集合的查询等操作效率都不高。所以在实际使用中,往往将文档分类存放在不同的集合中,例如,对于网站的日志记录,可以根据日志的级别进行存储,Info级别日志存放在Info集合中,Debug级别日志存放在Debug集合中,这样既方便了管理,也提供了查询性能。但是需要注意的是,这种对文档进行划分来分别存储并不是MongoDB的强制要求,用户可以灵活选择。

可以使用“.”按照命名空间将集合划分为子集合。例如,对于一个博客系统,可能包括blog.user和blog.article两个子集合,这样划分只是让组织结构更好一些,blog集合和blog.user、blog.article没有任何关系。虽然子集合没有任何特殊的地方,但是使用子集合组织数据结构清晰,这也是MongoDB推荐的方法。

(3)数据库

MongoDB中多个文档组成集合,多个集合组成数据库。一个MongoDB实例可以承载多个数据库。它们之间可以看作相互独立,每个数据库都有独立的权限控制。在磁盘上,不同的数据库存放在不同的文件中。MongoDB中存在以下系统数据库。

● Admin数据库:一个权限数据库,如果创建用户的时候将该用户添加到admin数据库中,那么该用户就自动继承了所有数据库的权限。

● Local数据库:这个数据库永远不会被负责,可以用来存储本地单台服务器的任意集合。

● Config数据库:当MongoDB使用分片模式时,config数据库在内部使用,用于保存分片的信息。

mongodb数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于MySQL数据库下载、mongodb数据库的信息别忘了在本站进行查找哦。

php很简单的商城源码,php开源的商城系统高中三角函数经典例题50道,高中导数29个典型例题