一、基础知识
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的版本相符合 | |
源码编译安装 |
编译安装,灵活度高 |