小米DBA工程师一面

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 小米DBA工程师一面

我面试遇到的问题

  1. DBA工程师是做什么的?
    DBA工程师负责数据库管理和维护,涵盖MySQL、Redis等数据库,从运维角度保障数据库系统的稳定性、性能优化及备份恢复等工作。
  2. redis常用的数据结构,他们的作用分别是什么?
    字符串 (String),哈希表 (Hash),列表 (List),集合 (Set),有序集合 (Sorted Set),位图 (Bitmap),HyperLogLog。
    用一个在线电商系统描述的话就是:
    {String:存储商品的详细描述信息},{Hash,存储每个商品的用户评价},{List,存储商品的销售订单,实现订单队列},
    {Set:存储用户的购物车,确保每个商品在购物车中只有一次},{Sorted Set:存储商品的销售排行榜,根据销售数量进行排序},
    {Bitmap,记录用户的在线状态,每个位代表一个用户是否在线},{HyperLogLog:估算网站每天的独立访问用户数}
  3. redis的系统架构?
    Redis系统架构:客户端、服务器、数据存储、持久化、主从复制、哨兵、集群和网络层组成。
  4. redis的分布式所解决秒杀系统问题(数据一致性问题)?
    问题原因:分布式环境下的高并发、网络延迟以及异步操作。
    解决方法:在分布式环境下普通的锁可能引起单点故障、性能瓶颈和可扩展性问题,Redis分布式锁可通过使用SETNX和DEL命令实现,确保在Redis中只有一个客户端成功获取锁;
  5. B+树,B-树,B树的区别?
    B+树是一种平衡树数据结构,具有多路搜索树的特性,其中非叶子节点只存储索引信息,而所有数据存储在叶子节点,提供高效的范围查询和顺序遍历。
    B-树是一种平衡树数据结构,具有多路搜索树的特性,每个节点包含多个关键字和子树,保持树的平衡,适用于磁盘存储系统,优化磁盘I/O。
    B树是一种平衡树数据结构,每个节点包含多个关键字和子树,用于在磁盘存储系统中优化查找和插入操作,保持树的平衡以提高性能。
    MySQL创建索引后,通常使用B+树作为数据结构,相比于B树和B-树,B+树更适合数据库索引,因为它在叶子节点上保存所有数据,提供更高的查询性能和范围查询效率。
  6. Redis的备份问题?
    Redis通过持久化机制(如快照和AOF日志)、复制和集群配置等方式来确保数据的持久性和高可用性。
    快照(RDB)是定期全量保存数据库状态的持久化方式,而AOF(Append-Only File)日志是实时追加记录每个写操作的持久化方式,两者区别在于保存的数据形式和对数据变动的处理方式。
  7. mysql中聚簇索引?
    在MySQL中,聚簇索引决定了数据行的物理存储顺序,提高了范围查询和按索引排序的性能,通常由主键索引扮演此角色。
  8. redis怎么降低秒杀系统的qps?
    过Redis缓存热门商品信息、限流、分布式锁、异步处理、热点数据缓存、CDN缓存、横向扩展和本地缓存等手段,有效降低QPS,提升系统性能。
    我采用通过缓存热门商品信息,如商品库存、价格等,可以降低对数据库的频繁查询,提高读取性能。同时,使用分布式锁确保对商品库存减少等关键操作是原子的,防止超卖等并发问题,保障系统一致性。
  9. 一般使用redis的时候容易遇到什么问题?
    秒杀系统中Redis常见问题包括分布式锁的竞争、缓存雪崩、缓存穿透、数据一致性和高并发下的性能瓶颈。
    可采用分布式锁机制、缓存预热、采用多级缓存、数据异步同步和优化Redis性能等方法。

10.DBA工程师还需要什么能力?

DBA工程师需要性能优化,安全管理,容灾备份,监控和调优,版本管理,自动化脚本编写能力。

其他面试题:

  1. mysql如何慢查询优化?
    通过使用索引、优化查询语句、适时分表分库、合理配置数据库参数和利用数据库性能分析工具等手段,对MySQL进行慢查询优化,提升数据库查询性能。
  2. 为什么要遵守最左前缀原则?
    最左前缀原则要求在使用复合索引时,查询条件的列顺序必须是索引中列的最左侧开始,以确保索引能够被充分利用,提高查询效率。
  3. mysql锁有哪些?
    MySQL中的锁包括共享锁、排它锁、记录锁、间隙锁、表锁,用于管理并发访问和确保数据一致性。
  4. mysql隔离级别?
    读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable),默认隔离级别是可重复读(Repeatable Read,解决了并发访问中的脏读、不可重复读、幻读等问题。
  5. order by为什么会讲解索引失效?
    因为排序操作可能需要访问大量数据页,而如果索引无法覆盖 ORDER BY 的列,数据库引擎可能会选择全表扫描而不使用索引。
  6. 什么是MVCC?
    MVCC(Multi-Version Concurrency Control)是一种数据库并发控制机制,通过在同一时间保留多个事务的不同版本,使得读操作不会被写操作阻塞,实现数据库的高并发性。
  7. mysql的主从同步原理?
    MySQL主从同步通过二进制日志(binlog)实现,主服务器将写操作记录到binlog,从服务器连接主服务器,获取并执行binlog中的操作,保持主从数据的一致性。
  8. mysql的innodb是什么?
    InnoDB是MySQL数据库的一种存储引擎,支持事务、ACID属性、行级锁和MVCC,是默认的事务性存储引擎,适用于高并发和数据完整性要求的应用。
  9. mysql的ACID靠什么保证?
    MySQL通过事务管理机制,使用事务日志和锁机制,来保证ACID(原子性、一致性、隔离性和持久性)特性。
  10. 索引扫描底层原理?
    索引扫描底层原理是通过B+树结构,在不需要遍历整个数据表的情况下,定位和快速检索符合查询条件的数据。

如果大家觉得有用的话,可以关注我下面的微信公众号,极客图书馆,我会在里面更新更多行业资讯,企业面试内容,编程资源,让大家更好学习编程,我的抖音,B站也叫极客李华。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
关系型数据库 MySQL 新能源
一位资深DBA的投资之道
一位资深DBA的投资之道
|
SQL 存储 关系型数据库
|
人工智能 运维 资源调度
还在犹豫吗?现在参与 OCM 社区正是时候
距离上一篇宣告 OCM 开源并提交 CNCF TOC 项目孵化申请的文章已经有一个多月了。这一个多月来 OCM 社区吸引了越来越多的关注和伙伴们的加入,OCM 自身的研发,相关领域产品和解决方案的应用也取得了快速的发展。如果你还在对云原生环境下多集群管理的技术选型犹豫不决,希望这篇文章能够答疑解惑。现在参与 OCM 社区正是时候。
还在犹豫吗?现在参与 OCM 社区正是时候
|
SQL 存储 Oracle
数据库大讲堂·第一期 云时代DBA会失业么?——《云时代的DBA职业规划&数据库上云新玩法》
本次分享邀请了阿里云数据库产品经理姜皓楠(昊楠)为大家介绍对云数据库时代DBA职业规划的个人见解,分享职业生涯中的重要决策点。并详细为大家解读传统DBA价值以及云数据库时代的DBA发展方向,讲解阿里云数据库现状以及数据库上云新玩法。
5762 0
数据库大讲堂·第一期 云时代DBA会失业么?——《云时代的DBA职业规划&数据库上云新玩法》
|
SQL 弹性计算 安全
阿里十年DBA经验产品经理:真的不要再有一起删库跑路事件了
本文作者:胜通,阿里云数据库产品专家
5464 0
|
程序员 BI 数据库
DBA职业发展之路:去“IOE”等挑战之下,DBA将何去何从?
随着近些年来,开源、自动化、云化的兴起,DBA职业也正悄然发生一些变化。面对一系列新的挑战,DBA将如何进行职业发展?本文将给出一些建议。
|
SQL 监控 容灾
【沉淀】懵懂入行,但一做就沉心钻研十年——记访谈阿里云SQL Server专家杨钊
杨钊,花名石沫,阿里云SQL Server数据库专家。在数据库设计、开发与规范,数据高可用与容灾,数据库的优化,数据库的自动化和智能化方向积累大量的经验,处理过超大群集和超高并发场景的业务。
2647 0

热门文章

最新文章