数据库

269 阅读3分钟

笔者在建立副本集和加大测试数据量(购买数据量的百分之80)之后发现,内存占用基本到了百分之80以上。看来mongo的第一个缺点,就是对内存的消耗真的非常可怕!!如果遇到高并发大数据量读写,恐怕分分钟就存在着存在着OOM的风险

总的来说,MongoDB确实可以不借助其他第三方工具实现高可用和分片功能,具备的高可用的故障切换,分片可以实现数据的分部均衡,大数据量的时候通过路由实现了服务器的负载均衡。所以MongoDB自身的可用性较高,也难怪会在短短时间内成为流行的nosql数据库。

但是MongoDB也存在着一些坑:如对内存的占用过高、对网络的占用过高、存在从节点锁导致读几乎不可用的情况,这些情况在实际业务使用的时候会导致很严重的问题,集群宕机、服务瘫痪、数据丢失无时不刻不是覆盖在运维同学心头的阴影。这个时候云MongoDB几乎就是救星,弹性伸缩、随时扩容、真正安全的数据热备以及强大的专业运维架构师团队,才能真的确保业务安全无故障的运行下去。

写到这里,笔者也在思考,云数据库到底是什么,它仅仅是把数据库封装一下,改改内核,提供给使用者吗?不,云数据库应当是一整套专业服务,除了数据库之外,还有监控、安全、迁移、灾备、运维等一系列的服务提供。能让业务开发专注于业务本身,把专业的交给专业的人去做。

MongoDB的优缺点

2.MongoDB优点:

1)更高的写负载,MongoDB拥有更高的插入速度。

2)处理很大的规模的单表,当数据表太大的时候可以很容易的分割表。

3)高可用性,设置M-S不仅方便而且很快,MongoDB还可以快速、安全及自动化的实现节点 (数据中心)故障转移。

4)快速的查询,MongoDB支持二维空间索引,比如管道,因此可以快速及精确的从指定位置 获取数据。MongoDB在启动后会将数据库中的数据以文件映射的方式加载到内存中。如果内 存资源相当丰富的话,这将极大地提高数据库的查询速度。

5)非结构化数据的爆发增长,增加列在有些情况下可能锁定整个数据库,或者增加负载从而 导致性能下降,由于MongoDB的弱数据结构模式,添加1个新字段不会对旧表格有任何影响, 整个过程会非常快速。

3.MongoDB缺点:

1)不支持事务。

2)MongoDB占用空间过大 。

3)MongoDB没有成熟的维护工具。

4.MongoDB应用场景

1.)适用于实时的插入、更新与查询的需求,并具备应用程序实时数据存储所需的复制及高度伸缩性;

2) 非常适合文档化格式的存储及查询;

3.)高伸缩性的场景:MongoDB 非常适合由数十或者数百台服务器组成的数据库。

4.)对性能的关注超过对功能的要求。

腾讯云上配置MongoDB

对了还有mongodb绑定的ip设置为0.0.0.0

注意一定要设置密码,很多人不设置密码或者设置很弱的密码,有很大的安全隐患。黑客会全网扫描mogodb的端口,很多人因此中招,新闻上有报导的

所以最好不要开启数据库外网访问,如果要做分布式,最好只开启云主机内网访问权限

你的应用应该由服务端程序访问数据库,对外提供业务api,不要直接从客户端访问远程数据库