字节飞书邮箱后端实习 2024-02-22
一面
- 要英文自我介绍,直接手足无措
- 算法:k 个有序数组合并,不能用库的优先队列(怀疑是搞错以为我是直接用优先队列一次全部输入来排序),最后暴力
O(n3)
解的,用 deque 从后往前删输入元素来保证内存操作的时间复杂度,最后讲了优先队列的优化 - 提问,还是要专门看八股,挺多没答出来的,答出来也答不到点:
- git rebase/merge 区别,什么时候用哪个
- mysql
- mvcc
- index
- undo redo bin log 顺序
- CAP
- 悲观乐观锁,实现,CAS
- ACID
- 隔离级别
- 两阶段提交
- 优化 SQL 性能,慢查询
- LIMIT 深度分页
- 多个字段数什么是哪个列放前面,用哪个做索引?
-
不只是这种,我们会考虑一些,就是你一个使用频率经常用的,第二是它选择性,这个列的选择性高的我们会放前面。第三也是看那个教你说 ID 音还是小宽度,小的会放前面这多种联合起来,但最终你是要从整个业务出发,你这个业务里面,比如这个表有多少条 circle 场景,每个四个场景用的属性是什么?然后用了联合索引,用一些相似度,有一些冗余的联合索引把它干掉,然后并且看每个字段它那个选择性以及整个的 SQL 的使用频率,最终做个决策。然后最终结果是我们期望是这个表里面它的索引应该是尽量少,不要太多,同时它的所有 SQL 都能走索引,以这个作为衡量指标。这个,嗯,那覆盖索引了解过吗?
-
- 覆盖索引
- 并发并行,硬件底层依赖,携程为什么方便
- 孤儿进程,僵尸进程
- thread safe, async signal safe
- 还有什么想聊的,聊了一下 C++ 新特性,但是感觉他也不懂我也不懂聊不来。聊了 OOP 多态和 OOP 特点,讲了多态实现