小米DBA工程师一面

  • 作者简介:一名后端开发人员,每天分享后端开发以及人工智能相关技术,行业前沿信息,面试宝典。
  • 座右铭:未来是不可确定的,慢慢来是最快的。
  • 个人主页极客李华-CSDN博客
  • 合作方式:私聊+
  • 这个专栏内容:BAT等大厂常见后端java开发面试题详细讲解,更新数目100道常见大厂java后端开发面试题。
  • 我的CSDN社区:https://bbs.csdn.net/forums/99eb3042821a4432868bb5bfc4d513a8
  • 微信公众号,抖音,b站等平台统一叫做:极客李华,加入微信公众号领取各种编程资料,加入抖音,b站学习面试技巧,职业规划

我面试遇到的问题

  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分布式锁可通过使用SETNXDEL命令实现,确保在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站也叫极客李华。

  • 23
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客李华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值