- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
数据库工程师面试题及答案
一、基础理论与选型
问题:关系型数据库(如MySQL)和非关系型数据库(如MongoDB)核心区别是什么?各举3个实际项目中常用的场景,说明为什么选这种类型数据库?
答案:核心区别在数据结构和事务支持——关系型是结构化表+强事务(ACID),非关系型是灵活结构(文档/键值等)+弱事务(部分支持最终一致性)。
场景举例:
选MySQL:用户订单系统(需事务保证下单-扣库存-支付一致性)、财务账单(强事务+结构化数据)、电商商品SKU管理(多表关联查询频繁);
选MongoDB:用户行为日志(非结构化+高写入)、APP首页个性化推荐(嵌套结构存储用户偏好)、物联网设备实时数据(字段多变,无需固定表结构)。
问题:MySQL中InnoDB和MyISAM引擎的差异?现在项目里为什么很少用MyISAM了?
答案:差异主要在事务、锁和崩溃恢复:InnoDB支持事务(ACID)、行级锁、崩溃后数据恢复,MyISAM不支持事务、只有表级锁、崩溃易丢数据。
少用MyISAM的原因:现在项目大多需要事务(比如下单、支付),表级锁在高并发写场景(如秒杀库存扣减)会严重阻塞,而且MyISAM不支持外键(虽然外键慎用,但部分场景需要),崩溃恢复能力差,生产环境风险高。
二、SQL实战与优化
问题:有一张用户表(user_id主键,register_timedatetime,cityvarchar),写SQL统计“近30天每个城市的新增用户数,若某天无新增则显示0”,并说明怎么优化这条查询的性能?
答案:
SQL语句:
--先构造近30天的日期表(避免某天无数据不显示)
WITHdate_rangeAS(
SELECTCURDATE()-INTERVALnDAYASstat_date
FROM(SELECT0nUNIONALLSELECT1UNIONALL...SELECT29)t--生成30天日期
)
SELECT
dr.stat_date,
u.city,
COUNT(u.user_id)ASnew_user_count
FROMdate_rangedr
LEFTJOINuseru
ONDATE(u.register_time)=dr.stat_date
ANDu.register_time=DATE_SUB(CURDATE(),INTERVAL30DAY)--过滤近30天数据
GROUPBYdr.stat_date,u.city
ORDERBYdr.stat_dateDESC,new_user_countDESC;
性能优化:
给register_time加索引(避免全表扫描),如果查询频繁,可建联合索引(register_time,city),覆盖查询字段,减少回表;
避免用DATE(register_time)函数(会导致索引失效),改成u.register_timeBETWEENdr.stat_dateANDdr.stat_date+INTERVAL1DAY-INTERVAL1SECOND;
日期表生成用表变量或预生成的日期字典表,避免每次子查询生成(尤其MySQL5.7及以下,子查询效率低)。
问题:执行SELECT*FROMordersWHEREorder_status=1ANDpay_timeBETWEEN2024-05-01AND2024-05-31时查询很慢,怎么排查原因?至少说3个排查方向和对应解决办法。
答案:
先看执行计划:用EXPLAIN分析,看是否走索引——如果type是ALL(全表扫描),说明没用到索引。解决:给order_status+pay_time建联合索引(注意顺序:等值查询字段order_status放前面,范围查询pay_time放后面,避免范围后字段失效);
查索引是否失效:比如pay_time是varchar类型(存了日期字符串),但查询用了datetime格式,会导致隐式转换失效索引。解决:统一字段类型,或查询时按varchar格式传值(如pay_timeBETWEEN2024-05-0100:00:00AND2024-05-3123:59:59,确保类型匹配);
看表数据量和碎片:如果orders表是千万级,且长期删除/更新,可能有索引碎片。解决:用OPTIMIZETABLEorders整
您可能关注的文档
- 操作系统高频面试题及答案.docx
- 成考政治试题及答案.docx
- 成人高考模拟试题及答案.docx
- 成人高考数学模拟试题及答案.docx
- 成人高考英语模拟试题及答案.docx
- 成人高考语文模拟试题及答案.docx
- 成人高考专升本试题及答案.docx
- 成人学位英语试题及答案.docx
- 护理安全核心试题及答案解析.docx
- 护理分级试题及答案.docx
- 第27课中国特色社会主义的开创与发展教学课件(共25张PPT)(内嵌音频+视频).pptx
- 3.2中国特色社会主义的创立、发展和完善课件(共24张PPT+2个)高中政治2026最新版必修一中国特色社会主义(内嵌音频+视频).pptx
- 2026届高考政治一轮复习统编版必修一中国特色社会主义2.2社会主义制度在中国的确立课件(共41张PPT)(内嵌音频+视频).pptx
- 8《登高》课件(共31张PPT).pptx
- 第十一单元第30课新时代中国特色社会主义的伟大成就课件(共25张PPT)高一历史部编版中外历史纲要(上)(内嵌音频+视频).pptx
- 高中新教材统编版政治同步课件(共50张PPT)必修1第四课第一框 中国特色社会主义进入新时代(内嵌音频+视频).pptx
- 高中思想政治统编版(部编版)必修14.1中国特色社会主义进入新时代课件(共30张PPT)(内嵌音频+视频).pptx
- 第31讲中国特色社会主义新时代课件(共28张PPT)2026届高考历史一轮复习备考课件(内嵌音频+视频).pptx
- 4.1《中国特色社会主义进入新时代》习题(内嵌音频+视频).pptx
- 人音版音乐四年级上册第5课童心是小鸟课件(23张PPT)(内嵌音频+视频).pptx
最近下载
- 建筑工程基孔肯雅热疫情应急预案(精选汇编).docx
- 学堂在线网课《生活英语读写》课后作业单元考核答案.docx VIP
- 移动通信管光缆线路工程监理实施细则(含管道建设).doc VIP
- 《前厅服务与管理》《旅游心理学》月考试卷.doc VIP
- BIQS教材-模块介绍.pptx VIP
- T_QGCML 2981—2024(悬浇连续梁临时固结组合体系的抗倾覆能力分析方法).pdf VIP
- 2025年衡阳出租车从业资格证考试题库下载.docx VIP
- 高频精选:海航招飞的面试题目及答案.doc VIP
- 7的乘法口诀公开课教学设计.pdf VIP
- 2024-2025学年人美版(2024)初中美术七年级下册全册(教案含反思).docx VIP
文档评论(0)