背景概念-数据库类型
对比关系型数据库
优点 :
- 逻辑清晰.容易理解,结构类似表格
- 使用 sql 语句技术成熟,使用方便
- 数据一致性好,完整性好
- 关系型数据库比较成熟,可以使用一些复杂操作
缺点 :
关键词: 慢
- 每次操作需要解析 sql 语句
- 内部加锁,影响效率
- 不能很好处理海量高并发需求
- 读写能力差
非关系型数据库
NoSql ---> Not only sql
常见数据库:
- 键值型数据库: Redis(散列表)
- 列存储数据库: HBase
- 文档型数据库: MongoDB, CouchDB
- 图形数据库: Graph
优点
- 读写速度快,更好的应对处理需求
- 灵活多样,容易扩展
缺点
- 没有统一的语句操作
- 技术成熟度较差,缺少复杂操作
使用场景
对数据格式一致性要求不严格
较强的扩展需要数据库做缓存时MongoDB 数据库
特性
- 非关系型数据库的文档型整理库
- 开源数据库,使用广泛,更新较快
- 由C++ 编写
- 支持丰富的存储类型和数据操作
- 有众多的编程语言提供接口
- 方便扩展和部署,使用方便
安装
Liunx :
sudo apt-get install mongodb
windows :
www.mangodb.com ----> try free ---> Server ---> 选版本下载
Mac OS :
brew install mongodb
安装目录
linux :
自动安装位置 : /var/lib/mangodb配置文件: /etc/mangodb.conf命令集: /usr/bin
命令
mongod 配置基本信息
常用参数,其他不常用的在 -h 里面自己查吧
-h / help 查看帮助--dbpath 设置数据库存储位置--port 设置端口,默认 27017
mongo 进入moongo shell 界面
quit() / ctrl+c 退出
数据结构
组成:
键值对----> 文档-----> 集合-----> 数据库
概念对比
------------------------------------ | mysql | mongoDB | 含义 | ------------------------------------ | database | database | 表/集合 | ------------------------------------ | table | collection | 字段/域 | ------------------------------------ | row | field | 记录/文档 | ------------------------------------ | index | index | 索引 | ------------------------------------
示例
mysql:
----------------- ID | NAME | AGE | ----------------- 1 | yang | 18 | ----------------- 2 | tuo | 16 | -----------------
mongoDB:
{ "ID" : 1, "NAME" : "yang", "AGE" : 18}, { "ID" : 2, "NAME" : "tuo", "AGE" : 16},
特点:
所谓灵活性: 一个集合中,不需要对文档的结构有限制,每个文档(记录)都可以随意自主的格式
简单来说,mysql 中的表的每行数据都要有固定的格式,不存在的字段必须要设置为空。