腾讯teg三面凉经

2024.04.18 一面

  • 自我介绍
  • 项目相关
  • 聚合函数、Group By 是如何实现的
  • Join 如何实现的,答的是二维循环遍历所有的结果
  • 追问:这种方法有什么优化?答了索引优化、哈希表优化
  • 哈希表优化的方式,如果建立哈希表特别的大,右边的特别小怎么办?
    • 答了系统会做优化,选取左边或者右边比较小的那个表
  • 追问:这个选择左边或者右边一般是在数据库哪个模块做的?(答:MySQL 当中是优化器)
  • 大概知道这个优化器的实现原理吗?
    • 扯了 MySQL 通过 Explain 语句,根据数据的行数选择决定用哪个表做哈希
  • 追问:你知道 Explain 语句是怎么实现的吗?
  • 介绍一下项目 Buffer Pool 的设计
  • 脏页是怎么管理的?(答了 LRU 链表替换的时候,如果是脏页会刷新到磁盘,然后引导的说了一下这可能会导致数据丢失的问题)
  • 追问:有什么办法解决这个脏页丢失的问题?
    • 答:扯了下 MySQL 当中 redo 日志
  • 有没有考虑过 LRU 算法的缺陷?(预读失效、缓存污染)
  • 并发的 B+ 树如何实现的?
  • 提到了火山模型,有了解到其他的执行模式吗?(答了物化模型,然后说这种适用于列数据库)
  • 从你的角度来看,行存和列存主要的应用场景在哪?
  • 数据库项目当中是否有事务?(答:有简单的 MVCC,但是没有具体了解过)
  • 单机数据库,还是分布式数据库?(单机)
  • 从这个单机数据库为基础,考虑拓展为分布式数据库,但是对于用户来说并没有感知,用户可能只是通过一个 IP 和地址进行访问,然后元数据的设计,数据的分布,算子的执行考虑如何设计?
    • 先扯了一下数据会考虑分片,我说了通过分布式的 ID 进行访问
  • 追问:你说的这种分片应该类似于哈希分片,还有什么分片方式?
  • 面试官引导说顺序扫描会有什么问题吗?然后想到按照范围进行一个分片
  • 元数据的话有什么样的优化点?(答:单独用一个数据库来保存元数据)
  • 假设保存元数据的节点挂了,这个时候要怎么考虑呢?(答:用主从复制的结构,主节点挂了,选个从节点)
  • 追问:在 MySQL 当中如果是主从复制的话,需要每次复制很多个从节点,你有了解业界用什么分布式的系统解决这个问题吗?(大概说了下 OceanBase 的三地五中心)
  • MySQL 主从复制结构中,主节点写入一条数据,从节点需要保证比较强的一致性,是如何处理的呢?(这里不太会,扯了下通过 bin log 日志进行同步)
  • 这里面试官又问了,MySQL 通过 bin log 来同步的话,对于用户来说是希望写入数据之后,立刻能读取到数据,如何保证一致性?(这里应该想问 Raft 协议相关的了,不会)
  • 看我上个问题不太会,面试官说这个问题可以抽象为分布式系统的一致性,这个有了解吗?(不了解)
  • select * from table; 的执行计划是什么样子的?(Project 投影算子 + TableScan 全表扫描算子,面试的时候 Project 一直想不起来叫啥了,服了)
  • 如果是分布式数据库的话,数据分布在不同的地方,你觉得需要增加哪些算子来实现这个功能?(答:在 Project 和 TableScan 中间再加一层算子对所有的数据进行汇总)
  • 如果加上 where 条件呢?分布式情况下如何考虑?
  • Group By 有一个 count,需要加上哪些算子呢?(答聚合函数算子,分布式情况下再进一步汇总)
  • 简单聊一下 Linux 的开机启动过程(x86 系统的忘了)
  • 中断处理模块是怎么实现的呢?
  • CPU 一般如何处理多个中断?
  • 在你的系统中如何理解进程和线程的区别?(这里没按照八股答,答了进程和用户态线程)
  • 用户态线程是自己主动退出的?这种实现有什么问题?(答了可能会一直不让出,占用 CPU)
  • 用户态向内核态切换的时候,描述一下切换过程?
  • 算法题:实现一个基于内存的文件系统,其实是一个变种的字典树问题
  • 反问
  • 问对实习地点是否有要求?说实习地点可以选北京、上海、深圳等,我说没特殊的要求

2024.04.22 二面

  • 自我介绍
  • 为什么研究生转专业?
  • 研究生的研究方向
  • 项目相关
  • 出于什么目的参加数据库的比赛
  • 项目多少时间
  • 基于你的理解 OceanBase 这个项目的优点和缺陷
  • 对 OceanBase 数据库是否有了解?
  • 基于 MiniOb 来说,一条 SQL 查询的流程
  • 整个查询过程中,最影响性能的关键点在哪
  • 项目生成执行计划的时候,是否有优化器的设计
  • 除了火山模型,对 Pipeline 模型是否了解?(我说是一个东西,面试官追问确定是一个吗?然后我说应该就是一个,最后面试官说应该就是一个,还笑了笑)
  • 火山模型的话,下一个优化的方向,去突破这些模型现有的一些瓶颈?(答了 CTRP 减少虚函数的开销,采用物化模型,返回一组数据)
  • 项目怎么分工的
  • 简单介绍一下 xv6 项目
  • 做的这个项目带来哪些收益
  • 技术栈是 C++,对 Java 是否了解?(不了解)
  • 对大数据是否了解?(不了解)
  • 对 OLAP 是否了解?(不了解)
  • 算法题:快慢指针找中点 + 反转链表
  • 闲聊:倾向于去哪个城市实习?职业方向?实习时间?实习多久?
  • 反问,面试官做 OLAP 的
  • 最后又问了:实习是倾向于来深圳的吧?(立马说是的)

2024.04.24 三面

感觉被刷 KPI 了,一个女面试官,然后简单问了一下简历项目自己做了什么,项目怎么分工的,有没有实习经历,然后问和别人合作的过程当中有没有遇见分歧?然后开始写题

算法题:一个字符串将其中大写转为小写字母,然后按照字典序排序,不能用库函数。(最简单的排序没写出来,用char* 输出结果不太对)

大概到30min之后,面试官说要去面试下一个人了,然后就结束了。

4.26 流程结束

跌跌撞撞的找工作经历 文章被收录于专栏

主要记录一些个人的实习、秋招的面经等

全部评论
汗流浃背了
点赞
送花
回复
分享
发布于 04-27 16:13 安徽
你这个数据库问得好难啊,都不是常规八股
点赞
送花
回复
分享
发布于 04-28 11:22 四川
滴滴
校招火热招聘中
官网直投
是数据库确实问的多,是数据库研发部吗?
点赞
送花
回复
分享
发布于 04-29 17:36 广东

相关推荐

点赞 18 评论
分享
牛客网
牛客企业服务