MongoDB集群高可用
MongoDB主从复制架构原理和缺陷master-slave架构中master节点负责数据的读写,slave没有写入权限只负责读取数据。在主从结构中,主节点的操作记录成为oplog(operation log)。oplog存储在系统数据库local的oplog.$main集合中,这个集合的每个文档都代表主节点上执行的一个操作。从服务器会定期从主服务器中获取oplog记录,然后在本机上执行!对于存储oplog的集合,MongoDB采...
MongoDB主从复制架构原理和缺陷master-slave架构中master节点负责数据的读写,slave没有写入权限只负责读取数据。在主从结构中,主节点的操作记录成为oplog(operation log)。oplog存储在系统数据库local的oplog.$main集合中,这个集合的每个文档都代表主节点上执行的一个操作。从服务器会定期从主服务器中获取oplog记录,然后在本机上执行!对于存储oplog的集合,MongoDB采...
MongoDB逻辑结构MongoDB 与 MySQL 中的架构相差不多,底层都使用了可插拔的存储引擎以满足用户的不同需要。用户可以根据程序的数据特征选择不同的存储引擎,在最新版本的 MongoDB 中使用了 WiredTiger 作为默认的存储引擎,WiredTiger 提供了不同粒度的并发控制和压缩机制,能够为不同种类的应用提供了最好的性能和存储率。在存储引擎上层的就是 MongoDB 的数据模型和查询语言了,由于 MongoD...
MongoDB的适用场景网站数据:Mongo 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。缓存:由于性能很高,Mongo 也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo搭建的持久化缓存层可以避免下层的数据源过载。大尺寸、低价值的数据:使用传统的关系型数据库存储一些大尺寸低价值数据时会比较浪费,在此之前,很多时候程序员往往会选择传统的文件进行存储。高伸缩性的场景:Mongo 非常适合由...
什么是索引索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引目标是提高数据库的查询效率,没有索引的话,查询会进行全表扫描(scan every document in a collection),数据量大时严重降低了查询效率。默认情况下Mongo在一个...
MongoDB的基本操作查看数据库show dbs切换数据库,如果没有对应的数据库则创建use 数据库名;创建集合db.createCollection("集合名")查看集合show tables; show collections;删除集合db.集合名.drop();删除当前数据库db.dropDatabase();MongoDB集合数据操作(CURD)数据添加插入单条数据db.集合名.insert(文档)文...
NoSQL 和 MongoDBNoSQL=Not Only SQL,支持类似SQL的功能,与Relational Database相辅相成。其性能较高,不使用SQL意味着没有结构化的存储要求(SQL为结构化的查询语句),没有约束之后架构更加灵活。NoSQL数据库四大家族 列存储 Hbase,键值(Key-Value)存储 Redis,图像存储 Neo4j,文档存储MongoDB。MongoDB 是一个基于分布式文件存储的数据库,由...
工具介绍YearningYearning简介Yearning 开源的MySQL SQL语句审核平台,提供数据库字典查询,查询审计,SQL审核等多种功能。Yearning 1.x 版本需Inception提供SQL审核及回滚功能。Inception是集审核,执行,回滚于一体的自动化运维系统,它是根据MySQL代码修改过来的,工作模式和MySQL相同。Yearning是基于python实现的Web版人机交互界面。Yearning 2....
Mycat简介Mycat 是一个实现了 MySQL 协议的 Server,前端用户可以把它看作是一个数据库代理,用 MySQL 客户端工具和命令行访问,而其后端可以用 MySQL 原生协议或JDBC 协议与多个 MySQL 服务器通信,其核心功能是分库分表和读写分离,即将一个大表水平分割为 N 个小表,存储在后端 MySQL 服务器里或者其他数据库里。对于 DBA 来说,可以这么理解 MycatMycat 就是 MySQL Ser...
ShardingSphereApache ShardingSphere是一款开源的分布式数据库中间件组成的生态圈。它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(规划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。ShardingSphere项目状态如下:ShardingSp...
背景描述刚开始我们的系统只用了单机数据库随着用户的不断增多,考虑到系统的高可用和越来越多的用户请求,我们开始使用数据库主从架构当用户量级和业务进一步提升后,写请求越来越多,这时我们开始使用了分库分表遇到的问题用户请求量太大单服务器TPS、内存、IO都是有上限的,需要将请求打散分布到多个服务器单库数据量太大单个数据库处理能力有限;单库所在服务器的磁盘空间有限;单库上的操作IO有瓶颈单表数据量太大查询、插入、更新操作都会变慢,在加字段...