当前位置: 首页 > news >正文

数据库面试题整理

数据库面试题整理

整理了下常见的有关数据的面试题,持续更新中

1. mysql数据库事务的四个特性:
  • 原子性(Atomicity):事务要么做,要么不做
  • 一致性(Consistency):使数据库从一个一致性状态变到另一个一致性状态
  • 隔离性(Isolation):一个事务的执行不能其它事务干扰
  • 持久性(Durability):指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的,不能回滚
2. mysql数据库事务隔离的级别:
  • 未提交读READ UNCOMMITTED:幻读,不可重复读和脏读均允许;
  • 已提交读READ COMMITTED:允许幻读和不可重复读,但不允许脏读;
  • 可重复读REPEATABLE READ:允许幻读,但不允许不可重复读和脏读;
  • 可串行化SERIALIZABLE:幻读,不可重复读和脏读都不允许;
3. 脏读 不可重复读 幻读是什么:
  • 脏读:当一个事务正访问数据,并对数据进行了修改,而这种修改还没提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。
  • 不可重复读:指在一个事务内,多次读同一数据。在这个事务还没结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。
  • 幻读:第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
4. 行级锁和表级锁和页级锁的比较区别:

表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低;
行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高;
页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。
适用:从锁的角度来说,表级锁更适合于以查询为主,只有少量按索引条件更新数据的应用,如Web应用;而行级锁则更适合于有大量按索引条件并发更新少量不同数据,同时又有并发查询的应用

5. 如何优化数据库的查询:
  • 合理使用索引
  • 避免或简化排序
  • 建立视图加快查询速度
  • 合理使用外键
  • 使用连接(JOIN)来代替子查询(Sub-Queries)


http://www.mrgr.cn/news/30718.html

相关文章:

  • CAN总线位同步的使用以及总线仲裁规则详解
  • 创新体验触手可及 紫光展锐携手影目科技推出AI眼镜开放平台
  • Redis五种数据类型剖析
  • 情景2 虚拟化世界 自己答案的理解
  • vue3中使用输入框按回车键刷新页面问题
  • (C++11)委托构造函数--C++
  • Ubuntu安装MySQL过程中没有出现设置root和密码的步骤导致无法root登入解决办法
  • <<编码>> 第 14 章 反馈与触发器(7)--分频器与计数器 示例电路
  • 上海AI气象大模型提前6天预测“贝碧嘉”台风登陆浦东 今年已多次精准预测
  • 工作烦恼与吐槽
  • 吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
  • Ubuntu初期配置常见问题汇总
  • 华为OD机试 - 构成指定长度字符串的个数(Python/JS/C/C++ 2024 E卷 100分)
  • WEB攻防-JS项目Node.js框架安全识别审计验证绕过
  • 修改Docker默认存储路径,解决系统盘占用90%+问题(修改docker root dir)
  • EmguCV学习笔记 VB.Net 12.3 OCR
  • C++--C++11
  • 单细胞BisqueRNA和BayesPrism去卷积分析工具简单比较
  • ffmpeg面向对象——参数配置秘密探索及其设计模式
  • 【编程底层原理】mysql的redo log undo log bin log日志的作用,以及何时生成,涉及到哪些参数变量
  • 详解JESD204B子类一的确定性延时(JESD20B三)
  • 无会员的办公技巧——office
  • 必知的PDF转换软件:看2024大学生如何选择
  • 全球视角下的IT产业新挑战与机遇
  • 深入理解Lucene:开源全文搜索引擎
  • Study Plan For Algorithms - Part34