面试题锦集:1、数据库三大范式,2、mysql索引类型及作用,3、事务的特性和隔离级别
面试题集锦
一、数据库三大范式
第一范式(1NF):
指数据库中表的每一列都是不可分割的最小单位
# 分割前:
地址
安徽省合肥市蜀山区
# 分割后:
省 | 市 | 区
安徽省|合肥市|蜀山区
第二范式(2NF):
如果表是单主键,那么主键以外的列必须完全依赖于主键列,如果表是符合主键(联合索引),那么主键以外的列必须完全依赖于主键,而不是主键的一部份
第三范式(3NF):
表中的非主键列必须直接依赖于主键列,而不是间接依赖于主键,也就是说非主键列不能间接依赖于主键列,出现这种情况应该在建立一张关联表而不是存放在一张表中
二、mysql有哪些索引类型及作用
首先先说一下什么是索引及索引的作用:
在关系型数据库中,给一个或多个字段(联合索引)设置索引,可以加快数据检索(类似于目录),达到快速查找的作用
普通索引:
允许该字段出现重复的值,且可以为空
唯一索引:
不允许该字段出现重复值,且不可以为空
主键索引:
非空且唯一,在不主动生成的情况下数据库会默认生成一个字段为主键(一般是id字段),非空且唯一
联合索引:
多个字段联合唯一
全文索引:
所有字段都作为索引条件,一般用的比较少,如果删除或修改字段可能照成B树结构改变,在数据量庞大的情况下不建议使用(主要根据业务逻辑来判断是否使用)
三、事务的特性和隔离级别
1、事务的四大特性
原子性(Atomicity):
事务一旦提交,要么全部成功,要么全部失败
隔离性(Isolation):
事务之间相互隔离,不受影响
一致性(Consistency):
一个事务开启后,在这个事务中多次查询数据的结果都必须是一致的
持久性(Durable):
事务一旦提交,对数据的影响是永久的,不可回滚
2、事务的隔离级别
未提交读(READ UNCOMMITTED):
事务的最低级别,会造成脏读、不可重复读、幻读
已提交读(READ COMMITTED):
该级别解决了脏读,但不可重复读和幻读任然存在
可重复度(REPEATABLE READ):
该级别是mysql5.7版本后默认的事务级别,该级别解决了脏读、不可重复度
串行化(SERIALIZABLE):
事务的最高级别,解决了脏读、不可重复读、幻读,该级别极大的保证了数据的安全性,缺点是无并发可言
| 事务的隔离级别 | 脏读 | 不可重复读 | 幻读 |
|---|---|---|---|
| 未提交读(READ UNCOMMITTED) | √ | √ | √ |
| 已提交读(READ COMMITTED) | - | √ | √ |
| 可重复度(REPEATABLE READ) | - | - | √ |
| 串行化(SERIALIZABLE) | - | - | - |
3、什么是脏读、不可重复度、幻读
脏读:
指A在事务的过程中可以读取到B修改单位提交的数据
不可重复度:
指在同一个事务中,多次读出数据,出现数据不一致的情况,这种情况通常是update和delete(数据前后不一致或开始时候读取存在,后来就消失了)
幻读:
很多人会把幻读和不可重复读混淆,幻读指在同一个事务的过程中,多次读取数据时,出现了新的数据(insert)
4、解决办法
机制锁:
- ru:最低级别,不加锁
- rc:开启事务时加行级锁,读到的时候加锁,读取完毕释放锁
- rr:开启事务时加行级锁,关闭事务时释放
- se:开启事务加表锁,关闭事务释放锁
MVCC机制:
- 保存某个时间上的数据快照
面试题锦集:1、数据库三大范式,2、mysql索引类型及作用,3、事务的特性和隔离级别的更多相关文章
- 数据库事务ACID特性及隔离级别
数据库ACID特性介绍 1.原子性(Atomic)一个事务被视为一个不可分割的最小工作单元,这个事务里的所有操作要么全部成功执行,要么全都不执行,不能只执行其中的一部分操作.实现事务的原子性,要支持回 ...
- Java数据库事务四大特性以及隔离级别
四大特性ACID 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚.失败回滚的操作事务,将不能对数据库有任何影响 一致性(Consistency) 一致性是指事 ...
- 数据库三大范式(1NF,2NF,3NF)及ER图
数据库三大范式(1NF,2NF,3NF)及ER图 百度官方解释: 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据 ...
- C#笔试题面试题锦集(全)总20篇
前些时候找过一次工作,收集了很多不错的笔试题目.共享一下:) C#笔试题面试题锦集(20) 微软应试题目 (2010-01-15 21:32) C#笔试题面试题锦集(19) 雅虎C#题目 (2010- ...
- 数据库三大范式和反范式 · oldmee
后一个范式都是在满足前一个范式的基础上建立的. 1NF 无重复的列.表中的每一列都是不可分割的基本数据项.不满足1NF的数据库不是关系数据库.如联系人表(姓名,电话),一个联系人有家庭电话和公司电话, ...
- 11月29日内容总结——SQL注入问题、视图、触发器、事务、存储过程、函数、流程控制、索引、慢查询、数据库三大范式
目录 一.SQL注入问题 SQL注入问题引入 SQL注入概念和解决方案 二.视图 三.触发器 定义 代码 1.触发器命名有一定的规律 2.临时修改SQL语句的结束符 四.事务 事务的四大特性(ACID ...
- 一天五道Java面试题----第七天(mysql索引结构,各自的优劣--------->事务的基本特性和隔离级别)
这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1 .mysql索引结构,各自的优劣 2 .索引的设计原则 3 .mysql锁的类型有哪些 4 .mysql执行计划怎么看 ...
- Mysql加锁过程详解(6)-数据库隔离级别(2)-通过例子理解事务的4种隔离级别
Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...
- 重新学习MySQL数据库5:根据MySQL索引原理进行分析与优化
重新学习MySQL数据库5:根据MySQL索引原理进行分析与优化 一:Mysql原理与慢查询 MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能 ...
- 数据库索引原理,及MySQL索引类型(转)
在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表: CREATE TABLE mytable( ID INT NOT NULL, username ) NOT N ...
随机推荐
- xlwings简单使用
xlwings能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改 xlwings基本操作 打开已有的Excel文档 # 导入xlwings模块 # 打开Excel程序,默认设置:程 ...
- AXI4_LITE总线vivado2019.1官方模板源码(verilog实现)
AXI lite总线读写时序 1. AXI_SLAVE源码 `timescale 1 ns / 1 ps module myip_v1_0_S00_AXI # ( // Users to add pa ...
- 结对作业——考研咨询APP
结对作业--考研资讯系统 102陈同学105潘同学108苏同学 (排版:Markdown) 一.需求分析(NABCD模型) 1. N(Need 需求): 1)想知道每个专业考研可以考哪个专业2)想 ...
- P3366 模板最小生成树
题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz. 输入格式 第一行包含两个整数N,M,表示该图共有N个结点和M条无向边. 接下来M行每行包含三个整数 Xi,Yi,Zi,表 ...
- shell命令查找文件
1.find命令的参数下面是find命令一些常用参数的例子,有用到的时候查查就行了,像上面前几个贴子,都用到了其中的的一些参数,也可以用man或查看论坛里其它贴子有find命令手册使用name选项文件 ...
- opengl编程天天踩的坑
1. VBO 的 target 是 GL_ARRAY_BUFFER 不是 GL_VERTEX_BUFFER 2. glUniform()用来给uniform传变量 别用成 glProgramUnif ...
- 关于 ubuntu 22 desktop 安装 网易云音乐无法启动解决办法
- 报错现象 /opt/netease/netease-cloud-music/netease-cloud-music: /opt/netease/netease-cloud-music/libs/l ...
- C# 图片 等 文件 读取操作 的一点提示
源于:在读取图片时,总喜欢首先采用:Image img=Image.FromFile("");操作,这种方式由于 调用图片的程序与图片文件是通过 绝对地址关联的,会造成 当前进程或 ...
- 博弈论练习6 Deleting Divisors(sg找规律,思维)
题目链接在这里:G-Deleting Divisors_牛客竞赛博弈专题班组合游戏基本概念.对抗搜索.Bash游戏.Nim游戏习题 (nowcoder.com) 这道题一道比较明显的思路是使用sg函数 ...
- org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/features/allow-java-encodings' not recognized.
tomcat启动服务后,解析xml等文件会报错org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/fea ...