关系型数据
OracleDB2SQLServerMySqlSqLite(python 标准库支持)
优点:1、容易理解,类似常见的表格;
2、使用方便,都是使用sql语句,sql语句非常成熟
3、数据一致性高,冗余度低,完整性好
4、技术成熟,可以用于外部链接等比较复杂的操作
缺点:1、不能很好满足高并发需求,每次都需要进行sql语句的解析;
2、针对海量数据的瞬间爆发读写性能不足;
3、关系型数据库内部每步操作都需要加锁保证操作的原子性;
4、数据扩展普遍比非关系型困难
5、数据一致性高,有时候会浪费大量空间
非关系型数据库(也叫Nosq,即Not only Sql)
优点:1、高并发,大数据读写能力强;
2、支持分布式,容易扩展;
3、弱化了数据结构,降低了数据的一致性,节省空间;
缺点:1、通用性差,没有像sql那样一致的操作
2、操作灵活,容易混乱
3、没有join、数据库事务支持等操作
Nosql的适用情况:
1、对数据一致性要求低
2、数据库并发处理要求高
3、数据库设计时对数据库空间大小估算不确定,需要分布拓展
4、给定的数据比较容易建立起Nosql的模型
Nosql分类;
1、键值型数据库
RedisoracleDBDTokyo
2、列存储数据库
HBase
3、文档型数据库
MongoDBCouchDB
4、图形数据库
MongoDB
1、由c++编写的数据库管理系统
2、支持非常丰富的数据操作(增删改查)
3、支持非常丰富的数据类型
4、使用方便,便于部署,支持分布,容易拓展
5、支持众多的编程语言接口(python ruby c++ c# PHP)
安装:
sudo apt-get install mongodb
默认安装位置 /var/lib/mongodb
配置文件 /etc/mongodb.conf
命令集 /usr/bin /usr/local/bin
手动安装:
1、下载MongoDB
2、选择安装目录解压
tar解压后得到MongoDB文件夹
3、将文件夹下的命令集目录(bin目录)添加到环境变量
PATH=$PATH:/opt/mongo..../bin
export PATH
将以上两句写在/etc/rc.local
4、重启
设置数据库存储位置:
mongod --dbpath 目录
设置端口号:
mongod --port 8888
*如果不设置则使用默认端口号 27017
输入mongo进入mongodb的交互界面来操作数据库
退出:quit()
组成结构:键值对》
文档》
集合》
数据库
创建数据库
use databasename
例如:
创建一个叫st的数据库
use st
*use实际功能是表示选择使用哪个数据库,当这个数据库不存在时,即表示创建该数据库
*使用use后数据库并不会马上被创建,而是需要插入数据后,数据库才会创建。
查看数据库
show dbs
数据库名称规则
1、原则上是任意满足以下几个条的utf-8字符
2、不能是空字符,不能含有空格、“.”、‘’、“/”、“