![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
mongodb
分布式数据库基本操作、原理、使用场景、源码学习
空腹熊猫
普通后台开发,喜欢看源码,对机器学习深度学习感兴趣
展开
-
mongodb 基本原理:分片(Sharding)
分片是将数据分布在多台机器的方法。MongoDB 使用分片来提供海量数据的部署和高吞吐操作 .这种数据库系统可以挑战单服务器的最高容量,例如高频率的查询可以将服务器的cpu容量发挥到极致。超出系统内存的数据集则会充分调用磁盘的IO。面对系统扩充有两种方法:垂直扩展和水平扩展垂直扩展提高单台服务器的容量,例如使用更强的cpu,加内存,存储空间。技术的局限限制了单台机器面对高负载的能...转载 2020-02-16 17:22:51 · 4691 阅读 · 0 评论 -
mongodb 基本原理:副本(Replication)
mongodb 的副本集(replica set) ,是一组维护相同数据的进程集合,为数据提供冗余和高可用。(high availability)数据冗余和数据可用副本提供了冗余和可用性。在不同的db服务器上维护数据的多份副本,针对单db服务的宕机提供了容错性。同时还可以增加读性能,因为读请求可以分散到不同的服务器中。(容灾、备份、高可用)mongodb 的副本一个副...转载 2020-02-16 14:30:07 · 865 阅读 · 0 评论 -
mongodb 基本原理:索引(Indexes)
mongodb 使用索引支持高效的查询,没有索引就必须要扫描整个数据集。索引是以一种可高效遍历数据的形式(B树)存储的结构,存放着一个或多个字段值,并且按值排序。索引的这种排序支持高效的精确查询或者范围查询,根据索引的排序返回排好序的数据。以下是使用索引查询病排序的图示:默认的_id 索引mongodb 在_id字段上创建唯一索引,这个索引不能删除。注意:在...转载 2020-02-16 11:41:40 · 2301 阅读 · 0 评论 -
mongodb 基本原理:事务(Transactions)
mongodb单文档的操作是原子性的,所以可以将关联的数据存在一份文档里,而不是放在不同的文档,这种方式可以应对大多数多文档原子操作的场景。对于要读写多文档的原子性,mongodb 提供了事务。基于分布式事务,mongodb 可以提供跨数据集、db、文档和分片的原子性事务api详见:Transactions API事务与原子性分布式事务与多文档的事务mongodb4.2 ...转载 2020-02-15 22:33:48 · 2240 阅读 · 0 评论 -
mongodb 基本原理:数据模型(Data Modeling)
数据模型关键在于平衡应用需求、数据库引擎性能和数据检索模式。设计数据模型要考虑数据的使用和内在结构。弹性的格式与SQL 数据库不同(插入数据前要声明表结构),mongodb的数据集collections不需要文档具有统一结构数据集中的文档不需要有相同字段,同一字段的类型也不需要一致 修改文档结构(添加、删除字段,修改字段类型),可以直接对文档进行修改这种灵活性可以将文档映射...转载 2020-02-15 18:37:32 · 504 阅读 · 0 评论 -
mongodb 基本操作:文档聚合
聚合操作将多份文档分组,对每个分组做一系列操作然后得到一个值。mongodb有3种聚合方式:aggregation pipeline map-reduce function single purpose aggregation methods.集合流水线聚合db.orders.aggregate([ { $match: { status: "A" } }, { $...转载 2020-02-15 17:22:02 · 308 阅读 · 0 评论 -
mongodb 基本操作:文档删除
删除方法:db.collection.deleteMany() db.collection.deleteOne()先插入数据:db.inventory.insertMany( [ { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" }, { item: "notebook",...转载 2020-02-15 16:17:19 · 423 阅读 · 0 评论 -
mongodb 基本操作:文档更新
更新方法db.collection.updateOne(<filter>,<update>,<options>) db.collection.updateMany(<filter>,<update>,<options>) db.collection.replaceOne(<filter>,<...转载 2020-02-15 13:06:27 · 493 阅读 · 0 评论 -
mongodb 基本操作:文档插入
1、插入单份文档db.collection.insertOne()db.inventory.insertOne( { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } })将文档插入inventory 数据集中,返回:{ "acknowledg...转载 2020-02-15 10:20:24 · 196 阅读 · 0 评论 -
mongodb 基本概念:文档(Documents)
mongodb将数据存为BSON 文档格式,BSON 是json文档的二进制格式,但是比json支持更多数据类型,详见:bsonspec.org1、数据结构mongodb文档由键值对组成{ field1: value1, field2: value2, field3: value3, ... fieldN: valueN}value可以是任意bso...转载 2020-02-15 10:02:03 · 964 阅读 · 0 评论 -
mongodb 基本概念:数据库与数据集
MongoDB 存储BSON 文档, 也称为 records, 文档存储在数据集中(collections); 集合存储在数据库中(databases).1、切换dbuse myDB2、创建dbuse myNewDBdb.myNewCollection1.insertOne( { x: 1 } )当myNewDB不存在时,首次执行插入操作会自动创建3、创建数据集...原创 2020-02-15 09:13:44 · 627 阅读 · 0 评论 -
ubuntu 18 安装mongodb
在ubuntu18安装mongodb 有两种方法,这里用包管理器安装由 MongoDB Inc. 维护的包称为mongodb-org,确保系统未安装mongodb防止冲突1、导入公钥sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52...转载 2020-02-14 21:41:03 · 299 阅读 · 0 评论