本人非科班985渣硕。
字节跳动对数据结构和算法要求比较高,也会占较大的比重。基本不考语言的东西,这次面试的主要问mysql和redis。会对项目进行深挖。
一面(14:00 60min)
1.自我介绍
2.mysql事务,和隔离级别有哪些,仔细介绍一下
3. 丢失更新可以怎么解决?
4.什么是覆盖索引?
5.非聚簇索引怎么优化?
6. hyperloglog原理及用途?
7. 说一下https的过程
8. https里面证书的具体内容是什么?
9.https为什么采用混合加密?
9. redis的事务,说一下出现什么样的异常后面的语句还可以继续执行?
10. redis主从复制
11.算法题:输入两个字符串s1, s2,求和,求差。

二面(15:10 40min)
1.自我介绍;
2. 问项目的东西
3. 如何解决最后一个商品可能卖不出去?mysql减库存异常出现事务回滚。
4. MD5算加密算法吗?为什么加两次,加一次不可以吗。
5. MD5算不算加密算法;
6. 两个字符串hash后会得到同一个密文吗?如何解决hash冲突。
7. 说一下聚集索引和非聚集索引
8. 说一下hash索引,hash索引有什么优缺点;
9. 知道什么是组合索引吗?说一下怎么创建组合索引
10 .说一下,Next-lock锁:比如有这样一张表table ,事务的隔离级别为默认Repeatedly Read
id name
1 p1
2 p2
5 p5
如果我想插入一条数据:insert into table(id, name) values(6, p6)此时会加锁吗?如果加锁锁住的是哪些内容
如果现在执行查询操作:select * from table where id = 5 ;可以查询吗?
那这条查询语句可以查到结果吗?
select * from table where id = 5 for update;
11. 说一下mysql的优化,水平分表怎么做?按什么来分?
12. redis的事务不严谨,怎么优化一下?

算法题:
给两个数m,n 其中m表示1,2,3,4,5,…,m ,求在m中所有满足和等于n的组合
比如m = 5, n =6, 满足条件的结果有:[1,2,3], [1,5], [2,4]