RAID
RAID出现的背景
- 单块大容量磁盘的价格>多块小容量磁盘
- 单块磁盘的写入性能<多块磁盘的并发写入性能
- 单块磁盘的容错能力有限,不够安全
RAID0(提高性能):多个磁盘组成,没有备份处理,假设有两个磁盘组成RAID0,我要写入1MB数据等价于把数据分成 两份存储两个磁盘,读取的时候同时读取两个磁盘512KB即可。
RAID1(提高容错):为每一个磁盘提供一个镜像盘
RAID10:
RAID01:
从读取和写入性能来看,RAID10比RAID01要高(同时读/写取4份和2份)
数据库和存储系统
存储系统:一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统
数据库:是存储系统,但比存储系统多了一些新的特性
数据库相对于存储系统的优势
- 结构化数据管理
- 事务
- 简单的复杂查询能力
数据库分为关系型数据库和非关系型数据库
关系=集合=任意元素组成的若干有序偶对反应了事物间的关系
SQL=一种DSL=方便人类阅读的关系代数表达形式
事务: 原子性(Atomic): 事务是一个不可分割的整体,事务必须具有原子特性,及当数据修改时,要么全执行,要么全不执行,即不允许事务部分的完成。
一致性(Consistency): 一个事务执行之前和执行之后,数据库数据必须保持一致性状态。数据库的一致性状态必须由用户来负责,由并发控制机制实现。就拿网上购物来说,你只有让商品出库,又让商品进入顾客的购物车才能构成一个完整的事务。
隔离性(Isolation): 当两个或者多个事务并发执行时,为了保证数据的安全性,将一个事物内部的操作与其它事务的操作隔离起来,不被其它正在执行的事务所看到,使得并发执行的各个事务之间不能互相影响。(为了能够并发执行,涉及数据安全性&一致性和并发效率)
持久性(Durability): 事务完成(commit)以后,DBMS保证它对数据库中的数据的修改是永久性的,即使数据库因为故障出错,也应该能够恢复数据!