




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MongoDB 数据库技术概述MongoDB到底是什么样的数据库商业数据库的时代开源浪潮的时代互联网浪潮时代云浪潮时代1988199520052004 MapReduce2003 GFS2006 BigTable20122012 SpannerAuroraPolarDBCockroachDB19771970 Relational. Model水平弹性扩展自动故障恢复和高可用性分布式事务保障数据一致性在云数据库和NewSQL时代,该有的核心特性MongoDB早就有了,而且更好用!将集群中的分片部署成复制集,实现故障自动恢复和高可用性。集群中每一个shard的部署架构通过自动选举,实现故障恢复原生
2、分布式架构,通过分片Shard实现水平弹性伸缩。易横向扩展,实现海量数据存储分片由复制集构成,保障高可用性自动均衡分布数据,提升读写性能multi-document transactions for shard clusterMongoDB 4.2multi-document transactions for replica sets MongoDB v4.0single-document transactions Two-phase commit MongoDB v3.6wiredTiger supportMongoDB v3.0client = MongoClient(mongodb:/2
3、8:60001/) db = client.crminventory = db.inventorysession = client.start_session() #开启一个sessionsession.start_transaction() #在session内部,开启一个事务 inventory.insert_one(_id: 4, model:switch, count: 200, session=session) doc1 = inventory.find_one(_id: 4, session=session)pprint.pprint(doc1)doc2 = inventory.f
4、ind_one(_id: 4) pprint.pprint(doc2) mit_transaction()#提交事务 doc3 = inventory.find_one(_id: 4) pprint.pprint(doc3) session.end_session()#结束session在session内部查询, 可以访问到前面插入的数据在session外部查询,事 务没有提交,访问不到 前面插入的数据在session外部查询,事 务已提交,可以访问到 前面插入的数据client = MongoClient(mongodb:/28:60001/) db = client.crminventor
5、y = db.inventorysession1 = client.start_session()#开启一个session1 session1.start_transaction()#开启一个事务1inventory.delete_one(_id:4, session=session1)doc1 = inventory.find_one(_id: 4,session=session1) pprint.pprint(doc1)#输出none,说明在事务里面已经删除session2.abort_transaction()#终止事务2 session2.end_session()# 结 束 sess
6、ion2 doc2 = inventory.find_one(_id: 4)pprint.pprint(doc2)#在事务外可以找到,说明事务1被终止后,回滚了session2 = client.start_session()# 再 开 启 一 个 session2 session2.start_transaction()# 再 开 启 一 个 事 务 2 inventory.delete_one(_id:4, session=session2)#会发生事务冲突 session1.abort_transaction()#终止事务1session1.end_session()#结束session
7、1两个未提交的事务,同时修改相同的文档,产生冲突事务的快照隔离特性事务的冲突检测与并发PrimarySecondarySecondary客户端应用Mongo驱动writeread with secondaryread preferencePrimarySecondarySecondarySecondarySecondarySecondarySecondaryArbiter广州DC北京DC武汉DC广州客户端 请求Mongo驱动北京客户端 请求Mongo驱动武汉客户端 请求Mongo驱动writeread with nearest readpreferenceSecondaryread with
8、nearestread preferenceread with nearest read preferencePrimarySecondarytags = “city”:”GZ ”SecondarySecondarySecondarySecondarySecondarySecondaryArbiter读参考,实现读写分离就近读从指定的节点读多种“读参考”模式,实现灵活的读写分离。GoodsName: ”男士2016款潮流T桖”,GoodsType: “男士T桖”, GoodsPrice: 59, GoodsProperties: color: “红色”,”白色”,”黄色”,size: “XL”,”L”,”XXL”键:值值为嵌套文档值为数组模式自由,类JSON格式存储(最接近真实对象模型),对开发者友好。数据库层面提供了强大的角色与权限控制,减少应用端的代码开发。PrimarySecondarySecondary复制集客户端应用监听CRM数据库客户端应用db.inventory.inser
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Brand KPIs for ready-made-food Hormel in the United States-外文版培训课件(2025.2)
- 中国古典舞身段训练
- 采购合同范本协议模板
- 电商代运营合作协议模板
- 2025展望:透视二手房交易中的“不公平合同”
- 2025融资租赁合同书范本
- 第18课《井冈翠竹》教学设计-2024-2025学年统编版语文七年级下册
- 2025委托技术服务合同
- 《职场交际与沟通技巧》课件
- 《深入研究展示》课件
- 采油工程试题及答案
- 小学科学阅读试题及答案
- 找最小公倍数案例北师大五年级下册数学
- 基因组学在临床的应用试题及答案
- 公司法公章管理制度
- 统编版2024-2025学年语文六年级下册期中测试卷试题(有答案)
- 企业供应商管理制度
- 新生儿早产儿个案护理
- 2024-2025学年人教版初中物理八年级下册期中检测卷(第七章-第九章)
- 维修人员管理奖惩制度3篇1
- 《2025年CSCO肾癌诊疗指南》解读
评论
0/150
提交评论