一、基础知识
1、主要的数据库类型层次型数据库早期的数据库类型
网状数据库
关系型数据库
对象-关系型图片存放路径,大段文本存放指针
2. sqllit
关系数据库接口,仅提供API。非c/s架构,也是关系型数据库。客户端与服务器端在一起,本地调用本地运行。表现为一个库番外:
DBM引擎 httpd上的存储用户帐号密码 htpasswd
3. 关系型数据库基本模型
在表示层为:文件(表)
在逻辑层为:文件系统:存储引擎
在物理层:元数据;数据块
上图并不完全适用mysql,是通用数据库管理系统的模型
a) 接口之上使用结构化查询语句:DDL、DML、DCL
b) 查询引擎à查询求解引擎,可以理解为“内核”“解空间”
c) 文件存取方法,需要将内存中数据存储至磁盘空间à数据流式化
d) 磁盘空间管理器确定怎样将数据存放至磁盘,以什么样的方式存放
e) 事务,支持ACID,多个语句同时执行/不执行。MyISAM 无事务,InnoDB支持事务(show engine 查看引擎)。
事务状态:提交保证了数据持存储
未提交可以回滚,保证数据一致性
e) 事务和锁结合实现了并发控制
f) 大部分情况下读写磁盘为随机,使用事务日志,顺序存储
g) 事务日志,固定大小,在磁盘上是顺序I/O。定期将数据同步到磁盘,多个之间轮替,传输数据后清理数据。
h) 恢复管理器不需要用户参与管理
i) 索引会变得很大,才用分级,B-tree。数据和索引在同一个数据块上称为聚簇索引,不在一起成为非聚簇索引
4. RDBMS设计范式第一范式:字段的原子性
第二范式:主键
第三范式:非主属性不允许重复
具体解释见附件
5. 约束主键约束
外键约束 //不是所有的引擎都支持
唯一键约束
条件约束
非空约束
6. DBA管理工作
管理DBA连接管理及优化
备份及还原
数据库设计
基本语句优化
用户及权限管理
安全管理
数据库软件安装及升级数据库服务器架构设计,mysql不适合大量的并行
配置优化
数据字典
按需配置服务器服务器变量 状态变量 MyISAM InnoDB 缓存 日志
作为一个数据库管理员需要学习的主要知识SQL/MySQL
事务,隔离,并发控制,锁
用户和权限
监控
索引类型:查询优化查询
备份和恢复
复制功能
集群
开发DBA需要学习的内容数据库设计
SQL开发
内置函数
存储例程(存储过程和存储函数),过程没有返回值,函数有返回值
触发器
事件调度器(周期性维护计划,event scheduler)
二、Mysql
1. 特性speed完全多线程,查询缓存
reliablity可靠
scabability伸缩性
ease of use便捷使用
portability and standard compliance
multiuser support多用户支持
internationalization
插件式存储引擎:5.5.8:MyISAM 5.5.8后:InnoDB
2. 架构
缓存是根据语句的hash码来判断是否命中。
3. 组件架构
a) 刚刚发起连接需要发起请求,建立连接后不需反复建立连接。这里主要是对用户进行验证
b) 查询时使用优化器
c) update等对数据修改使用表修改模块
d) 访问控制,主要是对权限进行验证
4. 目录结构
5. 安装rpm包OS Vendor 操作系统提供mysql-client mysql-server mysql-shared mysql-shared-compat
Mysql
通用二进制格式一定要保证与os的版本相符合
源码编译安装编译安装,灵活度高