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

计算机基础面试(数据库)

1. 事务的ACID特性?如何通过日志保证原子性和持久性?
  • 专业解答
    ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。日志(如Redo/Undo Log)记录操作,故障时重做或回滚。

  • 初中生版
    事务像银行转账:要么转成功(原子性),要么全取消(回滚)。日志像监控录像,出问题时按记录恢复。


2. 数据库索引的原理是什么?B+树和哈希索引的区别是什么?
  • 专业解答
    索引加速查询。B+树适合范围查询,叶节点链表结构;哈希索引基于哈希表,仅支持等值查询。

  • 初中生版
    B+树像图书馆的分类书架,能快速找到某类书或范围(比如A到C区);哈希索引像快递柜,直接输入编号(哈希值)取件。


3. 什么是脏读、不可重复读和幻读?如何通过隔离级别解决?
  • 专业解答

    • 脏读:读到未提交数据;
    • 不可重复读:同一事务两次读结果不同;
    • 幻读:同一事务两次查询行数不同。
      通过隔离级别(如RC、RR)控制。
  • 初中生版
    像考试时:

    • 脏读:抄同学没写完的答案;
    • 不可重复读:第一次看同学得80分,第二次看被改成90分;
    • 幻读:第一次统计班里5人及格,第二次突然多出1人。

4. MySQL的InnoDB和MyISAM引擎的主要区别是什么?
  • 专业解答
    InnoDB支持事务、行锁、外键;MyISAM不支持事务,表锁,但查询更快。

  • 初中生版
    InnoDB像带锁的日记本:能记录交易(事务),单页可修改;MyISAM像普通笔记本:写得快但不能锁页。


5. 什么是MVCC(多版本并发控制)?如何实现快照读?
  • 专业解答
    MVCC通过保存数据多个版本,实现读不阻塞写。快照读(如SELECT)读取历史版本,避免加锁。

  • 初中生版
    MVCC像图书馆的旧书库:读者看旧版书(快照),作者同时修改新版,互不干扰。


6. 数据库范式有哪些?第三范式(3NF)的要求是什么?
  • 专业解答
    主要范式:1NF(字段原子性)、2NF(消除部分依赖)、3NF(消除传递依赖)。3NF要求非主键字段不依赖其他非主键字段。

  • 初中生版
    范式像整理衣柜:1NF(不塞一堆衣服),2NF(按季节分类),3NF(不重复存放同款衣服)。


7. 什么是聚集索引和非聚集索引?InnoDB的主键索引结构是怎样的?
  • 专业解答
    聚集索引决定数据存储顺序(InnoDB主键),非聚集索引(二级索引)存键值和主键地址。

  • 初中生版
    聚集索引像字典正文:按拼音排序;非聚集索引像目录:查到页码再翻到对应页。


8. SQL注入的原理是什么?如何防范?
  • 专业解答
    攻击者通过输入恶意SQL拼接,绕过验证。防范方法:参数化查询(预编译)、过滤特殊字符。

  • 初中生版
    SQL注入像谎报密码:假装是管理员(' OR 1=1--),骗过系统。防范:用保险锁(参数化)封住漏洞。


9. 什么是查询优化器?基于代价的优化(CBO)如何工作?
  • 专业解答
    查询优化器生成执行计划。CBO根据统计信息(如行数、索引)估算成本,选择最优方案。

  • 初中生版
    查询优化器像导航:根据路况(数据分布)选择最短或最快路线。


10. 什么是锁?行级锁和表级锁的区别是什么?
  • 专业解答
    锁保障并发安全。行级锁粒度小并发高(如InnoDB),表级锁粒度大并发低(如MyISAM)。

  • 初中生版
    行级锁像给单本书上锁;表级锁像锁整个书柜。前者灵活,后者省事但影响多人使用。


11. 什么是死锁?数据库如何检测和解决死锁?
  • 专业解答
    死锁是循环等待资源。数据库通过超时或等待图检测,回滚代价小的事务。

  • 初中生版
    死锁像四人各拿一本书等别人交换。数据库会强制某人先放手(回滚),解开僵局。


12. 什么是视图?它的作用和局限性是什么?
  • 专业解答
    视图是虚拟表,简化查询、提供安全隔离。局限:更新受限,性能可能下降。

  • 初中生版
    视图像定制窗口:只能看特定数据(如只显示数学成绩),但改数据可能受限制。


13. 什么是存储过程?与普通SQL语句相比有何优缺点?
  • 专业解答
    存储过程是预编译的SQL集合,减少网络开销,但调试困难,移植性差。

  • 初中生版
    存储过程像预制菜:提前做好菜谱(SQL),点菜(调用)更快,但换厨房(数据库)可能不兼容。


14. 什么是分区表?如何选择分区键?
  • 专业解答
    分区表将大数据分片存储(如按时间、范围)。分区键应选择高频查询条件字段。

  • 初中生版
    分区表像分册的百科全书:按年份或字母分册,查资料更快。


15. 什么是数据库的冷备份和热备份?
  • 专业解答
    冷备份在停止服务时拷贝数据;热备份在运行时备份,可能丢失少量数据。

  • 初中生版
    冷备份像关灯打扫房间;热备份像边用房间边吸尘,可能漏掉角落。


16. 什么是NoSQL数据库?与关系型数据库的适用场景有何不同?
  • 专业解答
    NoSQL支持非结构化数据,高扩展性(如MongoDB、Redis),适合大数据和高并发;关系型数据库强一致性,适合事务场景。

  • 初中生版
    NoSQL像杂货店:能存各种奇怪的东西(JSON、图片);关系型数据库像超市:货架整齐,分类明确。


17. 什么是CAP定理?如何权衡一致性、可用性和分区容忍性?
  • 专业解答
    CAP定理:分布式系统无法同时满足一致性(C)、可用性(A)、分区容忍性(P)。通常根据场景选择CP或AP。

  • 初中生版
    CAP像餐厅服务:

    • CP:必须等厨师做好菜(一致)才上桌,可能等很久;
    • AP:直接上桌(可用),但可能菜没做好。

18. 什么是Redis的数据持久化机制?RDB和AOF的区别是什么?
  • 专业解答
    RDB定期快照,恢复快但可能丢数据;AOF记录写操作,数据更完整但体积大。

  • 初中生版
    RDB像拍照存档:定期拍一张全家福;AOF像录像:记录所有动作,恢复时重放。


19. 什么是数据库的索引覆盖(Covering Index)?
  • 专业解答
    索引覆盖指查询字段全在索引中,无需回表,提升效率。

  • 初中生版
    索引覆盖像目录包含答案:查书时直接看目录,不用翻正文。


20. 什么是连接(JOIN)算法?嵌套循环、哈希连接和排序合并连接的区别是什么?
  • 专业解答

    • 嵌套循环:遍历两表逐行匹配;
    • 哈希连接:构建哈希表快速匹配;
    • 排序合并:排序后顺序合并。
  • 初中生版

    • 嵌套循环像逐个问名字找朋友;
    • 哈希连接像用学号快速匹配;
    • 排序合并像按身高排队后组队。

21. 什么是慢查询日志?如何分析和优化慢查询?
  • 专业解答
    慢查询日志记录超时SQL。通过EXPLAIN分析执行计划,优化索引或拆分查询。

  • 初中生版
    慢查询日志像考卷错题本:找出耗时的题目(SQL),分析原因(索引、算法),针对性练习。


22. 什么是数据库的读写分离?如何实现?
  • 专业解答
    读写分离将写操作到主库,读操作到从库。通过代理(如ProxySQL)或中间件路由。

  • 初中生版
    读写分离像图书馆:主馆(主库)处理借书登记,分馆(从库)提供阅读,减轻主馆压力。


23. 什么是分库分表?如何解决跨库查询问题?
  • 专业解答
    分库分表按规则拆分数据。跨库查询需应用层聚合或全局表冗余。

  • 初中生版
    分库分表像分班管理:按学号分班,查全校数据时需合并各班结果。


24. 什么是事务的隔离级别?MySQL默认的隔离级别是什么?
  • 专业解答
    隔离级别:RU(读未提交)、RC(读已提交)、RR(可重复读)、S(串行化)。MySQL默认RR。

  • 初中生版
    隔离级别像考试监考严格程度:

    • RU:能看到别人未写完的答案;
    • RR:考试期间答案被锁定,只能看初始版本。

25. 什么是数据库的WAL(Write-Ahead Logging)机制?
  • 专业解答
    WAL先写日志再修改数据,保证崩溃时可通过日志恢复。

  • 初中生版
    WAL像先记账再花钱:即使突然断电,也能根据账本(日志)找回数据。


26. 什么是数据库的缓冲池(Buffer Pool)?如何管理页的加载和淘汰?
  • 专业解答
    缓冲池缓存磁盘页,减少IO。通过LRU算法管理,频繁访问页驻留,冷页淘汰。

  • 初中生版
    缓冲池像书桌:常用书放桌面(缓冲池),不常用的放书架(磁盘)。LRU像整理书桌,最近不用的先收起来。


27. 什么是数据库的乐观锁和悲观锁?
  • 专业解答
    悲观锁假设冲突多(如SELECT FOR UPDATE),乐观锁假设冲突少(如版本号验证)。

  • 初中生版
    悲观锁像考试锁卷子:怕人偷看,全程盯着;乐观锁像开放答题:提交时检查是否被改过。


28. 什么是数据库的物化视图?与普通视图的区别是什么?
  • 专业解答
    物化视图存储查询结果,定期刷新;普通视图实时计算。

  • 初中生版
    物化视图像预制菜:提前做好存冰箱;普通视图像现炒菜:点单后现做。


29. 什么是数据库的自治事务?应用场景是什么?
  • 专业解答
    自治事务独立于主事务提交,用于日志记录等需独立提交的场景。

  • 初中生版
    自治事务像独立记账本:主交易可能失败,但账本记录必须保留。


30. 什么是数据库的基数(Cardinality)?如何影响查询优化?
  • 专业解答
    基数是列唯一值的数量。高基数列(如身份证)适合建索引,低基数列(如性别)索引效果差。

  • 初中生版
    基数像班级学号:如果学号唯一(高基数),按学号找人快;如果按性别(低基数),索引作用小。

相关文章:

  • 零信任沙箱:为网络安全筑牢“隔离墙”
  • 【前端基础】Day 8 H5C3提高
  • 基于 Elasticsearch 和 Milvus 的 RAG 运维知识库的架构设计和部署落地实现指南
  • 【练习】【贪心】力扣435. 无重叠区间
  • TEE可信执行环境的安全业务保护方案
  • 前端水印实现方式
  • Windows 图形显示驱动开发-WDDM 3.2-脏位跟踪
  • 在剪映中给英文学习视频添加中文字幕
  • 微前端开发模式解析与实践
  • React高级内容探索
  • 夸父工具箱(安卓版) 手机超强工具箱
  • XAUI 详解
  • 自然语言处理:朴素贝叶斯
  • 用Babel脚本实现多语言/国际化
  • Ubuntu更改内核
  • 【AI】Ollama+OpenWebUI+llama3本地部署保姆级教程,没有连接互联网一样可以使用AI大模型!!!
  • ARM架构与编程(基于STM32F103)ARM单片机启动流程与MAP文件解析
  • RabbitMQ——消息发送的双重保障机制
  • Java【多线程】(2)线程属性与线程安全
  • vue2+ele-ui实践
  • 做的网站百度找不到/游戏推广员平台
  • 织梦小说网站模板下载/软文推广平台
  • 成立做网站的公司/免费推广app软件下载
  • 屏蔽网站接口js广告/东莞今天的最新通知
  • 用c3做的动画网站/满足seo需求的网站
  • 杭州网站建设 网站设计/阜新网站seo