- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
数据库面试题及答案(实战版)
一、基础概念题(10题)
问:MySQL中InnoDB和MyISAM引擎的核心区别?实际项目中怎么选?
答:核心区别集中在事务、锁机制和存储结构:
InnoDB支持事务(ACID)、行级锁、外键,适合写操作多的场景(如电商订单、支付系统);
MyISAM不支持事务和外键,只有表级锁,读性能优,适合读多写少(如博客文章、静态数据)。
实际选择:优先InnoDB(大部分业务需要事务保证数据一致性),仅纯静态数据存储可考虑MyISAM。
问:什么是数据库范式?实际设计表时会严格遵循第三范式吗?
答:范式是表结构设计的规范,核心是减少冗余:
1NF:字段原子性(不可拆分,如“联系方式”拆成电话+邮箱);
2NF:消除部分依赖(非主键字段必须完全依赖主键,而非主键的一部分);
3NF:消除传递依赖(非主键字段不依赖其他非主键字段)。
实际不会严格遵循:为了查询效率,会适当冗余(如订单表存“用户名”,避免关联用户表查询),遵循“反范式优化”原则。
问:数据库索引的作用是什么?常见索引类型有哪些?
答:作用是加快查询速度,减少磁盘I/O(类似书籍目录)。常见类型:
主键索引:唯一且非空,InnoDB中主键索引是聚簇索引(数据和索引存在一起);
唯一索引:保证字段值唯一,允许空值;
普通索引:无约束,仅加速查询;
联合索引:多字段组合(如idx_user_id_time(user_id,create_time)),遵循“最左前缀匹配”原则。
问:什么是事务?ACID分别指什么?
答:事务是一组不可拆分的SQL操作(要么全执行,要么全回滚),ACID是特性:
A(原子性):操作不可分割,要么成要么败;
C(一致性):事务执行前后数据总量一致(如转账,A减100,B必加100);
I(隔离性):多个事务并发执行时,相互不干扰;
D(持久性):事务提交后,数据永久保存(即使数据库崩溃也不丢失)。
问:MySQL的事务隔离级别有哪些?默认是哪个?
答:4个级别(从低到高):
读未提交(ReadUncommitted):能读到其他事务未提交的数据(脏读);
读已提交(ReadCommitted):只能读到其他事务已提交的数据(避免脏读,存在不可重复读);
可重复读(RepeatableRead):同一事务内多次查询结果一致(避免脏读、不可重复读,MySQL默认);
串行化(Serializable):事务串行执行(避免所有并发问题,性能最低)。
问:什么是脏读、不可重复读、幻读?
答:并发事务中的数据问题:
脏读:读到其他事务未提交的“临时数据”(如A转账给B,事务未提交,B查询到余额增加,后A回滚,B读到的是脏数据);
不可重复读:同一事务内,多次查同一数据,结果不一致(如A查询余额1000,同时B转账100并提交,A再次查询变成1100);
幻读:同一事务内,多次执行同一查询SQL,返回的记录数不同(如A查询有10条订单,同时B新增1条并提交,A再次查询变成11条)。
问:数据库锁按粒度分有哪些?InnoDB的行锁是怎么实现的?
答:锁粒度从大到小:表锁、页锁、行锁。
表锁:锁定整个表,并发低(MyISAM默认);
行锁:锁定单行数据,并发高(InnoDB默认);
InnoDB行锁基于索引实现:只有通过索引条件查询时,才会触发行锁;如果没有索引,会退化为表锁(比如updateusersetname=awhereid=1(有索引,行锁);updateusersetname=awherename=b(无索引,表锁))。
问:什么是聚簇索引和非聚簇索引?InnoDB和MyISAM的索引结构区别?
答:聚簇索引:索引和数据存储在一起,索引叶子节点存完整数据;
非聚簇索引:索引和数据分离,索引叶子节点存主键值(需要回表查询数据)。
区别:
InnoDB:主键索引是聚簇索引,非主键索引是二级索引(叶子节点存主键);
MyISAM:所有索引都是非聚簇索引(索引和数据分开存储,叶子节点存数据地址)。
问:什么是SQL注入?怎么防范?
答:SQL注入是黑客通过拼接SQL语句,非法获取或修改数据(如登录接口:select*fromuserwhereusername=${name}andpassword=${pwd},黑客输入name=or1=1--,拼接后变成select*fromuserwhereusername=or1=1--andpassword=xxx,直接登录成功)。
防范方法:
使用预处理语句(Prepare
您可能关注的文档
- 教育管理学试卷及答案.docx
- 教育管理学试题及答案.docx
- 教育经济与管理专业研究生入学考试试题及参考答案.docx
- 教育社会学课程试题及答案.docx
- 教育综合知识考编模拟试题及答案.docx
- 教育综合知识模拟试题及答案.docx
- 教资考试面试高频题目及实用答案.docx
- 教资考试模拟题及参考答案.docx
- 教资考试模拟题及答案解析.docx
- 教资面试高频题及参考答案.docx
- 《2025年公共卫生应急报告:AI疫情预测与资源调配模型》.docx
- 《再生金属行业2025年政策环境循环经济发展策略研究》.docx
- 2025年开源生态AI大模型技术创新与产业协同趋势.docx
- 《2025年智能汽车人机交互创新研究》.docx
- 2025年专利申请增长趋势下的知识产权保护机制创新分析报告.docx
- 《2025年数字藏品元宇宙技术发展趋势分析报告》.docx
- 2025年折叠屏技术迭代中AI功能集成市场反应量化分析报告.docx
- 《2025年教育培训视频化教学与会员学习服务》.docx
- 《2025年工业软件行业CAD国产化应用场景分析报告》.docx
- 《2025年生物制药行业趋势:单抗技术迭代与产业链自主可控规划》.docx
最近下载
- Audition实例教程(Audition CC 2019)全套PPT课件.pptx VIP
- 6.3 梯形的面积 课件 人教版 五年级数学上册.pptx VIP
- 2024-2025学年人教版(2024)小学信息技术六年级(全一册)知识点复习要点.docx VIP
- 污水管网 临电.docx
- 80万吨年渣油加氢项目可行性研究报告.docx
- 2025中国邮政集团有限公司贵州省分公司秋季招聘笔试备考试题及答案解析.docx VIP
- 广东省能源集团招聘笔试题库2025.pdf
- 临床常见病的中西医诊疗与康复新进展题库答案-2025年华医网继续教育答案.docx VIP
- 一种泥浆脉冲的快速编码方法.pdf VIP
- (完整版)西北工业大学航空学院结构力学课后题答案第二章结构的几何组成分析.docx VIP
原创力文档


文档评论(0)