设为首页 收藏本站
查看: 683|回复: 0

[经验分享] MySQL 基础知识理论篇

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-22 08:41:03 | 显示全部楼层 |阅读模式
1、数据保存在文件当中可能会出现的问题
    ①数据冗余:很多内容都是重复的,就像是/etc/passwd中最后一列/bin/bash
    ②不一致性:数据存储多份时,修改的话每一份都要手动修改,很麻烦
    ③数据访问困难:当保存数据的文本过大时,载入内存再访问很困难
    ④数据孤立:数据分散在不同文件中,每个数据保存时没有统一规范,检索很困难
    ⑤完整性问题:以银行转账的问题,要保证转账前跟转账后的结果是一致的
    ⑥原子性问题:同银行转账问题,数据必须以一种稳定状态转换为另一种稳定状态
    ⑦并发访问异常:多个人访问同一个数据文件
    ⑧安全性问题:例如文件查看与访问授权等等

2、关系模型(结构化数据模型)
    ①关系模型
    ②实体-关系模型(E-R模型)
    ③对象关系模型:基于对象的数据模型
    ④半结构化数据模型:XML(扩展标记语言)

3、关系:关系代数运算
    ①交集:A 交 B
    ②并集:A 并 B
    ③差集:属于A不属于B;属于B不属于A
    ④全集:总的集合
    ⑤补集:全集 - A

4、SQL(Structure Query Language)语言基本分类
1
2
3
4
5
DML(Data Manipulation Language):数据操纵语言例如:INSERT DELETE SELECT UPDATE

DCL(Data Control Language):数据控制语言例如:GRANT REVOKE

DDL(Data Definition Language):数据定义语言例如:CREATE ALTER DROP



5、约束类型
1
2
3
4
5
6
7
8
9
10
域约束:数据类型约束

外键约束:引用完整性约束

主键约束:某字段或某些字段组合能唯一标识此字段所属的实体,并且不允许为空;所有能唯一标识
的都叫候选键,选定之后就成了主键

唯一键约束:每一行的某字段都不允许出现相同指,可以为空;一张表只能有一个主键,但可以有多个唯一键

检查性约束:对域约束进一步的检查,避免发生现实逻辑错误



6、关系型数据库视角及文件系统视角
1
2
3
4
5
6
7
关系型数据库视角                        文件系统视角

表示层:表                              表示层:文件

逻辑层:存储引擎                        逻辑层:文件系统

物理层:数据文件                        物理层:磁盘块



7、关系型数据库管理系统具备的两个核心组件
①存储管理器
1
2
3
4
5
6
7
            权限及完整性管理器                     

            事务管理器

            文件管理器

            缓冲区管理器



②查询管理器
1
2
3
4
5
            DML解释器            

            DDL解释器

            查询执行引擎



8、mysql是使用一个独立线程响应一个请求的,避免权限交叉及安全问题
1
2
3
单进程多线程模型线程重用提高效率

SMP(Symmetric Multi-Processing)对称多处理 能力较弱,一个单独的查询语句只能在一颗CPU上执行



9、关系运算
1
2
3
4
5
6
7
8
9
            投影:只输出指定字段或属性            

            选择:只输出符合条件的行

            自然连接:具有相同名字的属性上所有取值相同的行

            笛卡尔积:(a+b)*(c+d)=ac+ad+bc+bd

            并:集合运算



10、MySQL微观组织结构各组件的功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
连接管理器:用于侦听来自客户端的连接,然后将请求派发给线程管理器

线程管理器:跟踪用户线程,确保每一个用户都能分配到线程,并且在用户退出后要么能实现线程重用,要么销毁此进程

用户模块:验证用户身份,判断用户是否有访问服务器权限

命令分发器:用户具有访问服务器权限之后,用户所发起的请求依据其类型将其转交给特定的模块

缓存模块:高速缓存模块,如果用户的请求是查询请求,缓存中有就直接返回

日志模块:负责记录用户操作的各种日志

解析器:解析查询并生成解析树,然后将生产的解析树交给特定的模块

优化器:负责创建响应请求时候的最佳查询策略,服务器的性能一定的程度上取决于优化器

表定义模块:DDL或DML之类的操作交由表定义模块,如表创建、删除、重命名、移除、更新或插入之类的操作

表维护模块:检查、修改、备份、恢复、优化(碎片整理)及解析

复制模块:例如把主MySQl服务器上的数据同步至从MySQL服务器上就需要用到复制模块

状态报告模块:存储当前MySQL服务器每一个执行过程中的状态信息

访问控制模块:验证客户端用户是否有权限执行其请求的操作

表管理器:负责创建、读取或修改表定义文件;维护表描述符高速缓存;管理表锁

存储引擎:真正与磁盘上数据交互的接口



11、文件中记录组织
    ①堆文件组织:一条记录可以放在文件中的任何地方
    ②顺序文件组织:根据"搜索码"指顺序存放
        ③散列文件组织:散列索引函数组织存放

12、表空间
将多个表的数据组织在一个数据文件当中的另外一个逻辑管理组件,有点类似于逻辑卷

13、数据字典
其实就是关系的元数据;例如关系的名字、字段名称、字段类型及长度、视图、约束关系、用户名称、授权、密码等等
安装MySQL后会进行初始化,生产一个mysql名称的库,这个其实就是MySQL的数据字典











运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-154541-1-1.html 上篇帖子: MySQL-5.5.28编译安装 下篇帖子: MySQL 性能优化之硬件瓶颈分析 基础知识
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表