小米DBA工程师一面

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 小米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
相关文章
|
5月前
|
机器学习/深度学习 算法 数据挖掘
技术经验分享:DTW和DBA
技术经验分享:DTW和DBA
62 0
|
6月前
|
Oracle 关系型数据库 数据库
Oracle 部署及基础使用,字节跳动资深面试官亲述
Oracle 部署及基础使用,字节跳动资深面试官亲述
|
6月前
|
SQL 大数据 HIVE
每天一道大厂SQL题【Day18】腾讯外包(微信相关)真题实战(三)
每天一道大厂SQL题【Day18】腾讯外包(微信相关)真题实战(三)
36 0
|
6月前
|
SQL 数据采集 分布式计算
每天一道大厂SQL题【Day16】腾讯外包(微信相关)真题实战(一)
每天一道大厂SQL题【Day16】腾讯外包(微信相关)真题实战(一)
58 0
|
6月前
|
SQL 大数据 HIVE
每天一道大厂SQL题【Day17】腾讯外包(微信相关)真题实战(二)
每天一道大厂SQL题【Day17】腾讯外包(微信相关)真题实战(二)
30 0
|
关系型数据库 MySQL 新能源
一位资深DBA的投资之道
一位资深DBA的投资之道
|
程序员
网传字节跳动 TNS 部门一锅端,转岗“难于上青天”
大家好,我是鸭血粉丝,不知道大家最近有没有看到一个帖子,说的是字节跳动 TNS 部门被一锅端。在这个疫情还没有被宣布结束的时期,很多公司都会有这种裁员的动作,俗称组织架构优化,很多小公司都倒闭了,大公司也不得不想办法控制成本,那么这个时候倒霉的也只能是普通的打工人了。 没有一劳永逸的开始;也没有无法拯救的结束。人生中,你需要把握的是:该开始的,要义无反顾地开始;该结束的,就干净利落地结束。
3114 0
网传字节跳动 TNS 部门一锅端,转岗“难于上青天”
|
SQL 存储 关系型数据库
|
关系型数据库 MySQL 数据库
专访探探DBA张文升:PG在互联网应用中同样也跑的很欢畅
他是如何从一名路人变成一个使用者,并逐渐成为PG社区核心成员和志愿者的?对PG,张文升又有什么不一样的经验和看法?
11483 1
|
弹性计算 Oracle 关系型数据库
谁说阿里云不能跑Oracle,让驻云架构师告诉你怎么办!
谁说阿里云不能跑Oracle,让驻云架构师告诉你怎么办!
14250 0