MongoDB基础
- 1.多表联合查询一次,和单表查询多次,那个效率高?
- 2.手机模拟器选择:
- 3.大概2千万数据可以用mysql主存复制,再大就效率就不行了。
- 4.redis支持持久化。
- 5.mongoDb类似于:mysql+redis
- 6.MongoDB 由C++语言编写,是一个跨平台面向`文档`的数据库
- 7.MongoDB 存储结构:数据库、集合(表)、文档(数据)
- 8.BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON
- 9.mongoDb文档:修改数据是在当前行修改,还是删除原来的换一行重新添加 ?
- 10.mongoDb注意事项:
- 11.sql和MongoDB 对比:
- 12.yapi的数据存储用的就是mongoDb
- 13.mongoDb默认端口27017
- 14.mongoDb库至少有一个集合才能被查询到
- 15.mongoDb的每个文档存储的字段都可以不同。
- 16.updateOne,如果多个满足条件,那么更新第一个
- 17.默认主键自动生成索引。
- 18.主键id必须用ObjectId.get()生成的全球id,不能自定义id。
- 19.查看所有的表名:show collections 。
- 20.mongoTemplate.save支持主键返回。
- 21.构造条件
- 22.实体类上的Mongo文档注解:
- 23.增删改查都需要根据集合名(表)来操作:
- 24.regex模糊查询。
- 25.查询操作顺序:条件,排序,分页
1.多表联合查询一次,和单表查询多次,那个效率高?
单表效率高。
在数据量不大的情况下多表连接查询和多次单表查询的效率差不多。
如果数据量足够大,那肯定是多次单表查询的效率更高。
在一些大的公司里面,都会禁用多表连接查询,原因就是一旦数据量足够大的时候多表连接查询效率会很慢,而且不利于分库分表的查询优化。
2.手机模拟器选择:
木木不支持分页,逍遥不支持相机
3.大概2千万数据可以用mysql主存复制,再大就效率就不行了。
4.redis支持持久化。
5.mongoDb类似于:mysql+redis
6.MongoDB 由C++语言编写,是一个跨平台面向文档
的数据库
7.MongoDB 存储结构:数据库、集合(表)、文档(数据)
8.BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON
9.mongoDb文档:修改数据是在当前行修改,还是删除原来的换一行重新添加 ?
直接修改。
10.mongoDb注意事项:
mongoDb支持地理位置索引,
不支持表连接,
主键只能是ObjectId.。
11.sql和MongoDB 对比:
RDBMS | MongoDB |
database(数据库) | database(数据库) |
table (表) | collection( 集合) |
row( 行) | document( BSON 文档) |
column (列) | field (字段) |
index(唯一索引、主键索引) | index (支持地理位置索引、全文索引 、哈希索引) |
join (主外键关联) | 表连接,MongoDB不支持 |
primary key(指定某个列做主键) | primary key (固定 |
12.yapi的数据存储用的就是mongoDb
13.mongoDb默认端口27017
14.mongoDb库至少有一个集合才能被查询到
15.mongoDb的每个文档存储的字段都可以不同。
通常情况存一样的。
16.updateOne,如果多个满足条件,那么更新第一个
17.默认主键自动生成索引。
18.主键id必须用ObjectId.get()生成的全球id,不能自定义id。
19.查看所有的表名:show collections 。
20.mongoTemplate.save支持主键返回。
save有主键更新,支持主键返回,不支持主键新增。
21.构造条件
// 构建条件
Query query = new Query(
Criteria.where("age").lt(30)
.and("username").regex("ja")
);
22.实体类上的Mongo文档注解:
@Document(value=“user”) // 集合(表)名
23.增删改查都需要根据集合名(表)来操作:
1)如果有注解可以直接User.class
2)collectionName:“user”
24.regex模糊查询。
25.查询操作顺序:条件,排序,分页