字节跳动后端暑期实习一、二、三面面经
3.23 一面:43min
-
redis哨兵如何知道主节点下线的
-
如何选举出新的主节点的
-
rabbitmq如何控制速度
-
如何更新缓存
-
如果一条MySQL语句执行慢,会是什么原因,MySQL优化方面?
-
分析一条explain的mysql语句,问如何优化查询
create tablegroup_user (
id int(11) NOT NULL auto_increment,
uid int(11) NOT NULL,
username archer(16) NOT NULL,
gid int(11) NOT NULL,
create_time int(10) NOT NULL,
update_time int(10) NOT NULL,
PRIVATE KEY (id),
KEY idx_uid (uid),
KEY idx_gid (gid),
)
150W数据执行下列语句需要1秒。
select uid FROM group_user where gid = 2 ORDER BY create_time ASC LIMIT 10;
id select type table type possible_keys key ken_len ref rows Extr 1 SIMPLE group_user ref idx_gid idx_gid 4 const 6535 Using where; Using filesort -
编程题:实现memcpy,优化:如何避免单个字节读写,如果两个指针不同类型?
-
编程题:
题目某一个大文件被拆成了N个小文件,每个小文件编号从0至N-1,相应大小分别记为S(i)。给定磁盘空间为C,试实现一个函数从N个文件中连续选出若干个文件拷贝到磁盘中,使得磁盘剩余空间最小。
函数定义如下:
int MaximumCopy(std::vector<size_t> s, size_t C, size_t &start_index, size_t &end_index);
return = 1
end_index = 2,
start_index = 0,
结果为 :
如N=5,S = {1, 2, 3, 5, 4},C = 7
其中start_index, end_index为文件的编号。
函数返回值为剩余空间,如无解返回-1。
-
场景题:给定150w考生,满分750分,如何快速获取给定分数的学生名次。
3.24 二面:50min左右
-
redis分布式锁的实现
-
MySQL的2PC
-
Redis哨兵选举
-
场景题:redis设置高并发抢单一的东西,如何避免高并发对一个键进行访问
-
http请求服务器的一个过程
-
http状态码
-
MySQL的索引数据结构,对比其他数据结构有什么优势呢
-
MySQL新增一个字段会发生什么样
-
MySQL的聚簇索引和非聚簇索引
-
SQL分析:
以下两个语句有啥不同
select * from table where b = xx;
select a from table where b = xx;
有个table,有以下3个字段分别是a、b、c,其中a是primary key,b是index,c是普通字段
-
编程题:最大栈
-
编程题:蛇形遍历二叉树
3.25 三面:53min
-
介绍一下项目中redis的多副本这里的实现
-
分布式一致性算法了解吗
-
redis的跳表是什么,和B+树对比
-
redis哈希扩容
-
rabbitmq原理
-
rabbitmq的消息队列消费失败怎么办
-
场景题,分布式多个机器生成id,如何保证不重复
-
编程题:
给定m个不重复的字符 [a, b, c, d],以及一个长度为n的字符串tbcacbdata,问能否在这个字符串中找到一个长度为m的连续子串,使得这个子串刚好由上面m个字符组成,顺序无所谓,返回任意满足条件的一个子串的起始位置,未找到返回-1。比如上面这个例子,acbd,3。
尽可能优化
类似leetcode 567:https://leetcode-cn.com/problems/permutation-in-string/