文章目录
数据库汇总: https://blog.csdn.net/qq_52681418/article/details/113881001
数据库-MongoDB
MongoDB 是一个基于分布式文件存储的数据库,即可以存储在多台服务器上,存储格式为bson类似于json的。
与MySQL对比:
Mysql | MongoDB | 格式 |
---|---|---|
表格(table) | 集合(Collection) | {key1:value1}{key2:value2} |
记录 | 文档(document) | {key:value} |
字段 | 键(key) | key |
主键 | 默认主键_id | {"_id":"…",key:value} |
分布式数据库连接:
//连接多个mongdb数据库
mongodb: //localhost, localhost:27018, localhost:27019
常用语法:
//查看库
show dbs
//创建\切换库,有个默认test库
use 库名
//删除当前库
db.dropDatabase()
//查看集合
show collections
//创建集合,参数可选,可限制大小
db.createCollection(name,参数)
//删除集合:mydb
db.mydb.drop()
MongDB文档的增删改查
假设集合为:mydb
//增加
db.mydb.insert({name:'张三',age:18})
db.mydb.save(文档)
db.mydb.insertOne(文档)
db.mydb.insertMany(文档1,文档2)
//删除
db.mydb.remove({'age':18})
db.mydb.remove({条件},{参数})
//修改
db.mydb.update({'age':18},{$set:{'name':'李四'}})
db.mydb.update({条件},{$set:{新值}},{参数})
//查询,pretty可以优化阅读
db.mydb.find({'age':18})
db.mydb.find({条件}).pretty()
MongDB分片
为什么要用分片?当数据库存储数据过大或吞吐量过大时,一台机器无法存储全部数据,因此需要在多台机器存储,将数据分割在多台机器上。
分片的三个主要组件:
- Shard : 数据实际存储区域块
- Config Server :配置中心
- Query Router :前端路由,使集群像单一数据库。
步骤:
- 启动Shard Server
- 启动Config Server
- 启动Route Process
- 配置Sharding:切换到mongos,添加shard节点
//添加节点
db.runCommand({addshard:"IP:port"})
db.runCommand({addshard:"IP2:port2"})
...
//设置分片存储的数据库
db.runCommand({enablesharding:"test"})
db.runCommand({shardcollection:"test.log",key:{id:1,time:1}})
//最终连接Route Process的端口即可