当前位置: 首页 > 面试经验 >

202210月巨杉数据库一面

优质
小牛编辑
151浏览
2023-03-28

202210月巨杉数据库一面

感悟:

面试体验不是特别理想,在一些问题上,提问的方式不具有引导性而且全程黑脸,提前说了某个工具不是很了解,还是被反复问了...emmm是要咋怎。 尬聊了近乎50min谢了。

面完就感觉应该不用等了。

面试分为三部分

自我介绍

一、针对项目进行提问

  1. 项目是偏向算法的吗?
  2. 介绍一下C++多态
  3. i++与++i区别,效率上
  4. 介绍一下C++异常处理机制
  5. 为什么C有了错误码还有有C++的异常处理
  6. 学过数据结构吗?介绍一下数据结构与排序算法
  7. 介绍一下排序算法的时间复杂度
  8. 树有了解嘛?
  9. 在你的项目里用到了什么树
  10. 介绍一下B+树
  11. 在MySQL中B+是如何实现的
  12. 索引是如何使用的

走索引地效率一定比全表查找地效率高吗?

  1. 分析sql【索引定位的记录很多且需要回表,需要重排序】
    【SELECT id,age,phone FROM t_account WHERE age = 25 ORDER BY name desc;】

如果排序的字段不存在于当前使用的索引和主键中,则需要去回表查询该字段,并且在server层根据该字段进行排序,所以效率更低,mysql选择了全表扫描来进行查询。

  1. 什么情况下要回表
  2. GDB调试有什么技巧
  3. 服务器项目那些地方用到了锁
  4. 任务队列中任务具体是什么?
  5. 是HTTP对象?
  6. 那是对一个数组上锁?(说错了,后来补充是链表形式)
  7. HTTP对象具体是有哪些构建地?
  8. 用到的是什么锁
  9. 怎么保证线程安全
  10. 如果不上锁会造成什么影响
  11. 如何检测服务器性能瓶颈有什么工具?

Linux有自带地工具,可以查看CPU使用情况,当前线程下处理的文件描述符数量,网络吞吐量情况

二、算法题:

公共前缀

class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (!strs.size()) {
return "";
}
int length = strs[0].size();
int count = strs.size();
for (int i = 0; i < length; ++i) {
char c = strs[0][i];
for (int j = 1; j < count; ++j) {
if (i == strs[j].size() || strs[j][i] != c) {
return strs[0].substr(0, i);
}
}
}
return strs[0];
}
};

三、反问

部门负责数据的是哪一块的呢?

培养方式?

#巨衫数据库#
 类似资料: