数据库面试题与复试准备
Mysql索引
mysql中的索引分为三类:B+树索引,Hash索引,和全文索引
问题一:Innodb索引与MylSAM的区别
按物理存储分类:InnoDB的存储方式是聚集索引,MyISAM的存储方式是非聚集索引。
两种索引都采用B+树的索引方式
MyISAM索引文件和数据文件是分离的,使用B+树实现,主键索引和辅助索引实现一致,索引文件仅保存记录所在页的指针(物理位置),通过这些地址来读取页,进而读取被索引的行。
InnoDB的辅助索引data域存储相应记录主键的值而不是地址InnoDB的数据文件本身就是主索引文件。
MyISAM的索引和数据是分开存储的。
数据库系统概述
数据
描述事物的符号记录称为数据
数据库
数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度(redundancy)、较高的数据独立性(data independency)和易扩展性(scalability),并可为各种用户共享。
数据库管理系统(DBMS)
数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。
数据库管理系统包括了一下几个部分
DDL
数据库管理系统提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象的组成与结构进行定义。
DML
数据库管理系统还提供数据操纵语言(Data Manipulation Language,DML),用户可以使用它操纵数据,实现对数据库的基本操作,如查询、插入、删除和修改等。
数据库系统(DBS)
数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator,DBA)组成的存储、管理、处理和维护数据的系统。
数据模型
数据模型(data model)也是一种模型,它是对现实世界数据特征的抽象。也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。
第一类是概念模型,第二类是逻辑模型和物理模型。
概念模型
概念模型常常用在软件系统数据库的设计上(E-R图)
数据模型的构成
数据模型的构成有三部分组成包括了
- 数据结构
- 数据操作
- 数据的完整性约束
常见的数据模型
- 层次模型(hierarchical model)
- 网状模型(network model)
- 关系模型(relational model)
- 面向对象数据模型(object oriented data model)
- 对象关系数据模型(object relational data model)
- 半结构化数据模型(semistructure data model)
其中层次模型和网状模型统称为格式化模型。
关系模型(重点)
关系(relation):一个关系对应通常说的一张表
元组(tuple):表中的一行即为一个元组。
属性(attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。
码(key):也称为码键。表中的某个属性组,它可以唯一确定一个元组
域(domain):域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
分量:元组中的一个属性值。
关系模式:对关系的描述,一般表示为:(关系模式举例)
关系名(属性1,属性2,…,属性n)
关系模式与完整性操作
关系模型的数据操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性。
数据库系统的三级模式结构(难点抽象)
模式(schema)
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,又与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关。
模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。定义模式时不仅要定义数据的逻辑结构,例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等;而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。
外模式
外模式也称子模式(subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
内模式
内模式也称存储模式(storage schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。例如,记录的存储方式是堆存储还是按照某个(些)属性值的升(降)序存储,或按照属性值聚簇(cluster)存储;索引按照什么方式组织,是B+树索引还是hash索引;数据是否压缩存储,是否加密;数据的存储记录结构有何规定,如定长结构或变长结构,一个记录不能跨物理页存储等
Mysql事务的四大特性
- 原子性
- 一致性
- 隔离性
- 持久性
其实现原理
事务的隔离性是通过数据库锁以及MVCC(多版本并发控制原理)机制实现的。
事务的一致性由undo log来保证:undo log是逻辑日志,记录了事务的insert、update、delete操作,回滚的时候做相反的delete、update、insert操作来恢复数据。
事务的原子性和持久性由redo log来保证:redo log被称作重做日志,是物理日志,事务提交的时候,必须先将事务的所有日志写入redo log持久化,到事务的提交操作才算完成。文章来源:https://www.toymoban.com/news/detail-800392.html
Mysql主从复制原理
master数据写入,更新binlog master创建一个dump线程向slave推送binlog slave连接到master的时候,会创建一个IO线程接收binlog,并记录到relay log中继日志中slave再开启一个sql线程读取relay log事件并在slave执行,完成同步slave记录自己的binglog文章来源地址https://www.toymoban.com/news/detail-800392.html
到了这里,关于数据库面试题与复试准备的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!