数据库面试知识点

2023-05-16

1、事务及其四个特性

事务是用户定义的一个操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
事务四个特性:原子性、一致性、隔离性和持续性。
原子性:事物中包括的操作要么都做,要么都不做。
一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
隔离性:一个事务的执行不能被其它事务干扰。
比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。
持续性:也称永久性,一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

2、隔离级别

如果不隔离的话会发生脏读、不可重复读、幻读这三种情况。
脏读是读取了未提交事务的脏数据,不可重复读和幻读都是读取了另一条已提交事务的数据。
现在来看看MySQL数据库为我们提供的四种隔离级别:
  ① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
  ② Repeatable read (可重复读):可避免脏读、不可重复读的发生。
  ③ Read committed (读已提交):可避免脏读的发生。
  ④ Read uncommitted (读未提交):最低级别,任何情况都无法保证。

3、如何解决并发带来的问题

排它锁:也叫写锁 X锁
共享锁:也叫读锁 S锁

4、封锁协议

一级封锁协议:修改时必须加X锁直到结束
二级封锁协议:读的时候加S锁,用完就放
三级封锁协议:读的时候加S锁,直到结束

一级锁协议:解决丢失修改
二级锁协议:解决读脏数据
三级锁协议:解决不可重复读

5、五种基本代数运算

选择、投影、笛卡尔积、并、差
自然连接:一种特殊的等值连接,它要求两个关系进行比较的分量必须是相同的属性组,并且在结果集中将重复属性列去掉。

6、索引的作用

优点:
通过创建唯一性索引,可以保证数据库表中的每一行数据的唯一性
可以加快数据的检索速度
可以加速表与表之间的连接
在使用分组和排序进行检索的时候,可以减少查询中分组和排序的时间

缺点:
创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
索引需要占用物理空间,数据量越大,占用空间越大
会降低表的增删改的效率,因为每次增删改索引,都需要进行动态维护

什么时候需要创建索引?
主键自动建立唯一索引
频繁作为查询条件的字段应该创建索引
查询中排序的字段创建索引将大大提高排序的速度(索引就是排序加快速查找
查询中统计或者分组的字段;

什么时候不需要创建索引?
频繁更新的字段不适合创建索引,因为每次更新不单单是更新记录,还会更新索引,保存索引文件
where条件里用不到的字段,不创建索引;
表记录太少,不需要创建索引;
经常增删改的表;
数据重复且分布平均的字段,

7、 索引的类型

普通索引、主键索引、唯一索引、全文索引、聚集索引

8、主键和索引的区别

1、主键用于唯一标识表中某一行的属性或属性组,而索引用于快速寻找具有特定值的记录;
2、一个表只能有一个主键,但可以有多个候选索引;
3、主键列不允许空值,而索引列允许空值;
4、主键可以被其他表引用为外键,而唯一索引不能;

9、数据库的关系完整性

实体完整性:主键唯一且非空。
域完整性:是指数据库表中的列必须满足某种特定的数据类型或约束。其中约束又包括取值范围、精度等规定。
参照完整性:是表间规则,定义外码。
用户定义完整性:根据应用要求定义属性上的约束条件,即属性值限制,包括:列值非空 ( not null )、列值唯一 ( unique )、检查列值是否满足条件表达式 ( check 短语)

10、drop、delete、truncate 的区别

drop:删除内容和定义,释放空间。(表结构和数据一同删除)
truncate:删除内容,释放空间,但不删除定义。(表结构还在,数据删除)
delete:删除内容,不删除定义,也不释放空间
执行的速度上,drop>truncate>delete

11、保证数据库安全的三种方法

用户标识与鉴别、存取控制(权限控制):对用户的存取权限进行控制
审计追踪机制(日志):设置相应的日志记录,便于后期查证
定义视图:视图机制屏蔽一部分保密数据,然后在视图上进一步进行授权

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库面试知识点 的相关文章

  • flask重录制版本

    flask部署 ssh连接服务器 putty连接服务器 xff08 大家应该都知道了 xff09 ssh保持长时间连接不断 编辑 etc ssh sshd config xff0c 添加配置项 xff1a ClientAliveInterv
  • YOLOX 做视频推理的时候 保存的文件夹为空解决方案

    YOLOX 做视频推理的时候 保存的文件夹为空解决方案 在测试yolox的demo 的时候图片可以正常推理视频推理也可以执行 xff08 不报错 xff09 xff0c 但是保存的文件内 xff0c 是空的 本人纠结好久 xff0c 终于完
  • 卡尔曼预测在视觉跟踪中的运用

    卡尔曼预测在视觉跟踪中的运用 本文以byteTrack为例 进行分析 byteTrack xff1a 论文 xff1a code 卡尔曼的五个公式 其中A 为状态转移矩阵P为协方差矩阵K为卡尔曼增益H为观测矩阵 在byteTrack中的代码
  • clion_gcc报错

    clion2022版本中mingw配置报错 已解决 导致的问题 运行按键是灰色 xff0c 无法使用 CMake是一堆报错 导致无法使用的 具体的cmake的报错如下 xff1a span class token string 34 D P
  • BoT-SORT: Robust Associations Multi-Pedestrian Tracking

    BoT SORT Robust Associations Multi Pedestrian Tracking 论文 xff1a arxiv code github 数据 xff1a 还未找到 文章贡献 运动相机的补偿和卡尔曼状态向量的选择I
  • 极市训练模型

    极市训练模型 创建好环境 启动平台选择juptyer notebook方便查看图片 查看数据 在终端输入ll home data 号码 执行代码 span class token comment coding utf 8 span span
  • 第二周实验-C

    题目描述 xff1a 瑞神HRZ因为疫情在家闲得无聊 xff0c 同时他又非常厉害 xff0c 所有的课对他来说都是水一水就能拿A 43 xff0c 所以他无聊 xff0c 找来了另外三个人 xff1a 咕咕东 xff0c 腾神以及zjm来
  • picgo图床设置

    picgo图床设置 1 picgo下载 安装 下载地址 xff1a github https github com Molunerfinn PicGo releases 可根据自己需要下载不同版本 xff0c 安装记住安装路径即可 2 下载
  • clion新建一个QT项目

    clion 新建QT项目 新建一个QT项目 设置为 可执行程序设置文件的路径设置C语言标准 QT的大版本号 项目生成两个文件 CMakeList txt cmake的文件main cpp 项目主文件 CMakeList txt cmake
  • notes

    MotionTrack Learning Robust Short term and Long term Motions for Multi Object Tracking 2023CVPR 2 西安交大 3 paper xff1a htt
  • win10系统下使用mingw编译protobuf,并且在vscode中使用cmake配置应用

    win10系统下使用mingw编译protobuf xff0c 并且在vscode中使用cmake配置应用 1 安装mingw编译器 这里作者使用了QT6自带的mingw编译器进行编译 xff0c 其他的版本并为测试 xff0c 感觉应该也
  • 华为机试HJ5-进制转换

    1 题目描述 写出一个程序 xff0c 接受一个十六进制的数 xff0c 输出该数值的十进制表示 xff08 多组同时输入 xff09 2 输入描述 输入一个十六进制的数值字符串 3 输出描述 输出该数值的十进制字符串 4 示例1 输入 0
  • 图像处理——图像滤波

    图像滤波 一 简述一下图像滤波二 常见的线性滤波器 xff1f 三 线性滤波和非线性滤波1 线性滤波 xff1a 方框滤波 均值滤波 高斯滤波2 非线性滤波 xff1a 中值滤波 双边滤波 参考 一 简述一下图像滤波 图像滤波是指尽量保持图
  • IDEA错误: 找不到或无法加载主类

    配置classPath
  • anaconda下tensorflow安装遇到的问题记录及解决办法

    TensorFlow安装遇到的问题 我安装使用的方法是pip命令安装 具体使用的命令如下 xff1a pip install span class token operator span upgrade span class token o
  • vscode和anaconda结合的环境配置

    vscode和anaconda结合的环境配置 0 友情提示1 修改python环境路径1 0理解一下这一步 xff08 可以跳过不看 xff09 1 1在哪修改 xff1f 1 2改成什么 xff1f 1 2 1如果你使用虚拟环境的话1 2
  • 第十一周作业-必做1

    题目描述 xff1a 蒜头君从现在开始工作 xff0c 年薪 N万 他希望在蒜厂附近买一套 60平米的房子 xff0c 现在价格是 200万 假设房子价格以每年百分之 K 增长 xff0c 并且蒜头君未来年薪不变 xff0c 且不吃不喝 x
  • conda环境下如何升级python?

    并不能使用pip Python这个东西相当于一切程序库的底子 xff0c 也就是其他的库都在他的上面 xff0c 这个地位不一样 xff0c 随意不能直接使用pip进行升级 需要使用其他的命令 使用 conda update python

随机推荐

  • Pycharm环境调整

    我们在使用pycharm创建项目的时候我们可以直接选择创建项目在什么环境之上 但是大多时候我们都是直接在别人的工作上进行二次开发 xff0c 所以这时候就涉及直接打开代码 xff0c 这就需要我们自行调整Python环境 0 准备工作 1
  • 生成网络论文阅读:DDPM(一):Denoising Diffusion Probabilistic Models论文概述

    结构速览 1 论文的整体逻辑是什么2 具体怎么加入噪声和去掉噪声的2 1加入参数的大致指导思想2 2具体怎么加入噪声2 3怎么去掉噪声 xff08 问题最后转化为怎么估算噪声 xff09 2 4怎么估计噪声 xff08 实际上怎么训练 xf
  • 定位系列论文阅读:WiCluster(二): Passive Indoor 2D/3D Positioning using WiFi without Precise Labels

    0 Abstract We introduce WiCluster a new machine learning ML approach for passive indoor positioning using radio frequenc
  • 扩散模型相关论文阅读,扩散模型和知识蒸馏的结合提升预测速度:Progressive Distillation for Fast Sampling of Diffusion Models

    目录 论文地址及代码速览主要解决的问题 扩散模型预测慢 0 Abstruct0 1 逐句翻译总结 1 INTRODUCTION1 1逐句翻译第一段 xff08 扩散模型在各个方面取得很好的成果 xff09 第二段 xff08 提出扩散模型预
  • 轨迹预测Leapfrog Diffusion Model for Stochastic Trajectory Prediction

    结构速览 论文速读 解决什么问题 解决这个问题的几个关键点 总体架构上面提出了哪些创新 如何实现蛙跳 如何处理轨迹表达和训练问题 0 Abstract 1 Introduction 第一段 介绍轨迹预测这个研究方向 第二段 前人未来轨迹预测
  • 如何关闭鼠标加速效果

    如何关闭鼠标加速效果 一 第一项二 第二项 如果要关闭鼠标加速 xff0c 一共需要改变两项设置 xff0c 缺一不可 一 第一项 1 按下win 43 R键 xff0c 然后输入control xff0c 点击确定 2 点击轻松使用 3
  • [算法设计题] 判断回文字符序列

    判断回文字符序列 要求 如 abcba 是回文 xff1b good 就不是回文 算法思想 对字符串的前一半进行入栈操作 xff0c 然后从栈里回去栈顶元素与字符串的后一半第一个字符进行比较 若相等则重复此操作 否则可以直接判断改字符序列不
  • Autoware1.14运行官网Demo 适配镭神激光雷达

    项目场景 xff1a Autoware1 14 运行官网demo 适配镭神16线激光雷达 运行官网Demo 1 创建 autoware文件夹 xff0c 下载官网数据包 xff0c 并解压 span class token function
  • 磁盘问题--系统盘出现只读现象( read-only file system)

    一 说明现象原因 1 问题现象 xff0c 创建文件或者创建目录都只读 touch cannot touch file test read only file system 2 问题说明 当文件系统自身的校验机制发现文件系统存在问题时 xf
  • 第十一周作业-必做3

    题目描述 xff1a Julius Caesar 曾经使用过一种很简单的密码 对于明文中的每个字符 xff0c 将它用它字母表中后 55 位对应的字符来代替 xff0c 这样就得到了密文 比如字符 A 用 F 来代替 如下是密文和明文中字符
  • 实现用python简易演奏《数鸭子》

    前几天上课老师给我们讲了两个模块 xff0c 然后利用这两个模块来模拟钢琴键盘去简单地演奏 数鸭子 今天来分享给大家 模块1 xff1a winsound 模块2 xff1a keyboard winsound xff1a winsound
  • 控制台报错整理

    一 无法将 npm 项识别为 cmdlet 函数 脚本文件或可运行程序的名称 请检查名称的拼写 xff0c 如果包括路径 xff0c 请确保路径正确 xff0c 然后再试一次 情景 在第一次初启项目时 xff0c 安装好node xff0c
  • git常用命令

    安装git 在git的官网下载需要的版本 安装完成后需要设置用户的用户名和邮箱 git config global user name 34 Your Name 34 例如 xff1a config global user name 34
  • 表格td实现可编辑

    html xff08 elementUi中的表格 xff0c 传入位置和当前值 xff09 methods xff08 生成input xff0c 将当前输入的value值等于当前单元格的值 xff09 handleChangeCorrec
  • vue开发实例

    1 利用三元表达式实现对元素样式动态赋值 2 vue中 实现点击下载图片
  • Elementui 踩过的坑

    select下拉框 这个是Elementui 官网 Select选择器的基础用法 xff0c 现在想要更改它本身自带的默认样式 lt template gt lt el select v model 61 34 value 34 place
  • WSL2图形化界面踩坑记录

    问题 xff1a 启动xfce4时 xff0c 报错 xff1a xfsm manager load session Something wrong with home shenshiyi cache sessions xfce4 sess
  • CSP M1-A 咕咕东的奇遇

    题意 xff1a 字母a z首尾相接成环 xff0c 开始时指针指向a xff0c 圆环可以顺时针或者逆时针旋转 xff0c 给定一个字符串 xff0c 计算旋转依次得到该字符串的每一个字符最少需要转多少格 Input 一个字符串 长度 l
  • pycharm的python库在哪?pip下载的文件放在哪?一个方法,都能找到

    1 打开cmd命令行 2 标题输入pip install xxx库 xff08 1 xff09 如果没下载过 xff0c 那么将正常下载 xff08 2 xff09 若下载过了 xff0c 就会显示你下载的目录 这个目录 c users x
  • 数据库面试知识点

    1 事务及其四个特性 事务是用户定义的一个操作序列 xff0c 这些操作要么全做要么全不做 xff0c 是一个不可分割的工作单位 事务四个特性 xff1a 原子性 一致性 隔离性和持续性 原子性 xff1a 事物中包括的操作要么都做 xff