数据库面试题与复试准备

这篇具有很好参考价值的文章主要介绍了数据库面试题与复试准备。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据库面试题与复试准备

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)

关系模式与完整性操作

关系模型的数据操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性。

数据库系统的三级模式结构(难点抽象)

数据库面试题与复试准备,MySQL,数据库

模式(schema)

模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,又与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关。
模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。定义模式时不仅要定义数据的逻辑结构,例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等;而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。

外模式

外模式也称子模式(subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

内模式

内模式也称存储模式(storage schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。例如,记录的存储方式是堆存储还是按照某个(些)属性值的升(降)序存储,或按照属性值聚簇(cluster)存储;索引按照什么方式组织,是B+树索引还是hash索引;数据是否压缩存储,是否加密;数据的存储记录结构有何规定,如定长结构或变长结构,一个记录不能跨物理页存储等

Mysql事务的四大特性

  1. 原子性
  2. 一致性
  3. 隔离性
  4. 持久性

其实现原理

事务的隔离性是通过数据库锁以及MVCC(多版本并发控制原理)机制实现的。
事务的一致性由undo log来保证:undo log是逻辑日志,记录了事务的insert、update、delete操作,回滚的时候做相反的delete、update、insert操作来恢复数据。
事务的原子性和持久性由redo log来保证:redo log被称作重做日志,是物理日志,事务提交的时候,必须先将事务的所有日志写入redo log持久化,到事务的提交操作才算完成。

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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 面试宝典(1)——数据库篇(MySQL)

    索引是一种用于加快数据库查询速度的数据结构。 索引可以帮助数据库快速定位到数据库表中特定列的记录,从而加快数据检索和查询的速度。 通过在表的列上创建索引,可以减少数据库系统需要扫描的数据量,从而提高查询效率。 MySQL中,常见的索引类型包括普通索引,

    2024年04月27日
    浏览(36)
  • 面试八股文Mysql:(2)数据库调优

    数据库优化在提升系统性能是很重要的一个方面,不管是MySQL还是MongoDB还是其它的数据库。 SQL优化在提升系统性能中是成本最低 优化效果最明显的途径,可以让 吞吐量更大,响应速度更快 。如果你的团队在SQL优化这方面搞得很优秀,对你们整个大型系统可用性方面无疑是一

    2024年02月13日
    浏览(46)
  • java八股文面试[数据库]——MySQL索引的数据结构

    知识点: 【2023年面试】mysql索引的基本原理_哔哩哔哩_bilibili 【2023年面试】mysql索引结构有哪些,各自的优劣是什么_哔哩哔哩_bilibili

    2024年02月10日
    浏览(52)
  • mysql数据库面试题基础知识,Hadoop之MapReduce04,腾讯java面试流程

    该方法的执行过程比较复杂,我们慢慢来分析,首先来看下简化的时序图 3.1waitForCompletion public boolean waitForCompletion(boolean verbose ) throws IOException, InterruptedException, ClassNotFoundException { // 判断任务的状态,如果是DEFINE就提交 if (state == JobState.DEFINE) { submit(); } if (verbose) { // 监听并且

    2024年04月14日
    浏览(62)
  • 【手写数据库toadb】01 开发数据库内核准备阶段-开发环境准备

    ​ 专栏内容 : 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上tag,方便阶段学

    2024年01月22日
    浏览(48)
  • java八股文面试[数据库]——MySQL死锁的原因和处理方法

    1) 表的死锁 产生原因 : 用户A访问表A(锁住了表A),然后 又访问表B ;另一个用户B访问表B(锁住了表B),然后企图 访问表A ;这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B才能继续,同样用户B要等用户A释放表A才能继续,这就死锁就产生了。 用户A--》A表(表

    2024年02月09日
    浏览(47)
  • mysql面试题30:什么是数据库连接池、应用程序和数据库建立连接的过程、为什么需要数据库连接池、你知道哪些数据库连接池

    该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 数据库连接池是一种用于管理和复用数据库连接的技术。它是在应用程序和数据库之间建立一组数据库连接,并以池的形式存储起来,每当应用程序需

    2024年02月07日
    浏览(58)
  • 从小白到数据库达人!Mysql优化让你的社招面试无往不利!

    大家好,我是小米,在这个美好的时刻又迎来了我们的技术小窝。今天,我们要聊一聊一个在数据库领域中无比重要的话题 —— Mysql 优化 !是不是感觉很兴奋呢?废话不多说,让我们直接进入今天的主题。 首先,我们要了解一下 Mysql 到底是什么。 Mysql 是一个开源的关系型

    2024年02月14日
    浏览(34)
  • 我的项目准备(数据库篇)

    参考何人听我楚狂声的代码,深入理解数据库知识,顺便作为自己项目的准备。 Transaction是 关系型数据库 的核心组成,它将数据有条理地保存在储存介质(磁盘)中, 并在逻辑上,将数据以结构化的形态呈现给用户。支持数据的增、删、改、查,并在过程中保障数据的正确且

    2024年02月15日
    浏览(41)
  • 【手写数据库toadb】02 开发数据库内核准备阶段-git工具使用

    ​ 专栏内容 : 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上tag,方便阶段学

    2024年01月24日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包