MongoDB的特点

简介: MongoDB是一款高性能、高可用、高扩展的NoSQL数据库,支持嵌入式数据模型与多种存储引擎,提供索引优化、自动故障转移、分片扩展及丰富查询功能,适用于海量数据存储与O2O等多样化应用场景。

高性能
MongoDB提供高性能的数据持久性。特别对嵌入式数据模型的支持减少了数据库系统上的I/O活动。
索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键。(文本索引解决搜索的需求、TTL索引解决历史数据自动过期的需求、地理位置索引可用于构建各种 O2O 应用) mmapv1、wiredtiger、mongorocks(rocksdb)、in-memory 等多引擎支持满足各种场景需求。 Gridfs解决文件存储的需求。
高可用性
MongoDB的复制工具称为副本集(replica set),它可提供自动故障转移和数据冗余。
高扩展性
MongoDB提供了水平可扩展性作为其核心功能的一部分。 分片将数据分布在一组集群的机器上。(海量数据存储,服务能力水平扩展) 从3.4开始,MongoDB支持基于片键创建数据区域。在一个平衡的集群中,MongoDB将一个区域所覆盖的读写只定向到该区域内的那些片。
丰富的查询支持
MongoDB支持丰富的查询语言,支持读和写操作(CRUD),比如数据聚合、文本搜索和地理空间查询等。

相关文章
|
2月前
|
XML Java 数据库连接
引入MybatisPlus的起步依赖
MyBatisPlus官方提供了一站式Starter,集成MyBatis与MyBatisPlus全部功能,支持自动装配,可直接替代原生MyBatis依赖。引入`mybatis-plus-boot-starter`后,无需额外配置,简化开发流程,原MyBatis依赖可移除,提升效率。
|
2月前
|
Java
Arrays.asList之后不要调用修改操作
`Arrays.asList()`返回的列表不可直接增删元素,因其底层为固定大小的内部类,调用`add/remove`会抛出`UnsupportedOperationException`;且列表与原数组共享数据,修改数组内容会影响列表。
|
2月前
|
存储
初始化Map大小并非用多少指定多少
初始化HashMap时,指定容量并非直接生效,而是会调整为最近的2的幂次(如1变2、3变4)。为避免扩容开销,建议使用Guava的Maps.newHashMapWithExpectedSize(),或手动按公式:容量 = 预期元素数 / 0.75 + 1 进行设置,提升性能。
|
2月前
|
NoSQL MongoDB
集合的显式创建
MongoDB中使用`db.createCollection(name)`创建集合,name为集合名称,不可为空或含\0、system.开头及保留字符如$。查看当前库表可用`show collections`或`show tables`。命名需遵循规范,避免系统保留字符。
|
2月前
|
存储 NoSQL MongoDB
选择和创建数据库
MongoDB中使用`use 数据库名`选择或创建数据库,若不存在则自动创建;`show dbs`查看所有数据库;`db`查看当前库。集合需插入数据后才真正创建。数据库名需为非空小写UTF-8字符串,不含特殊字符,最长64字节。保留库包括admin(权限管理)、local(本地存储)和config(分片配置)。
|
2月前
|
NoSQL MongoDB 数据库
数据库的删除
MongoDB删除数据库语法为:db.dropDatabase(),用于移除已持久化的数据库,执行后将永久删除当前数据库及其中所有数据,请谨慎操作。
|
2月前
|
SQL
理论分析
MyBatisPlus通过Wrapper条件构造器支持丰富查询,继承BaseMapper即可使用常用方法。AbstractWrapper定义eq、like、between等条件,QueryWrapper可指定查询字段减少IO开销,UpdateWrapper用于更新特定字段,提升SQL性能。
Service接口
MP提供了更高效的Service层方法,如批量增删改查、分页等。使用时需继承IService接口及ServiceImpl实现类,遵循其规范,提升开发效率,避免重复编写Mapper层代码,实现更优雅的业务逻辑封装。(239字)
|
2月前
|
SQL XML 安全
自定义SQL
利用MyBatisPlus的Wrapper构建动态查询条件,结合自定义SQL实现灵活更新。例如,扣减指定ID用户的余额:通过LambdaQueryWrapper构造id in (1,2,4)条件,Mapper中使用@Param("ew")传入wrapper,在XML或注解SQL中通过${ew.customSqlSegment}注入条件片段,实现SQL拼接,兼顾安全与灵活性。(239字)
|
2月前
|
SQL
案例实操
通过多个案例演示MyBatis-Plus中QueryWrapper和UpdateWrapper的实用技巧:实现条件查询、更新操作。涵盖模糊匹配、范围筛选、批量修改及SQL片段设置,提升开发效率与代码可读性。(238字)