2022年5月7日 作者 zeroheart

mysql 系列问题

1.如何算B+树的高度

由于一个页是16k,主键如果是bigint=8B,加上地址指针6B,那么可以存16k/14B=1170行数据的指针,那么两层的话就可以存1170*16k/单条数据大小,假设一条数据是1k,那么就是18724

假设是三层,1170*1170*16K/1K=2000w+

所以需要看单条数据大小来看

2.为什么hash用的少

mysql是自适应的hash,不能干预。hash不支持范围查询

3.事务如何实现

1.redolog 用来持久话
2.undolog 用来回滚

4.不符合最左前缀、隐式转还、走索引效率反而不高导致索引失效

走索引效率反而不高,索引设置的不合理,一些重复的字段设置了索引之类的。

5.分布式怎么设置id

1.uuid
2.修改步长的自增,提前规划
3.redis、zk、mongodb等来设置
4.雪花算法

6.一致性hash

如果使用hash分片,在扩容或者宕机时候,会存在较多的数据迁移。使用一致性hash的话可以减少这种数据的数量。

(26条消息) 面试必备:什么是一致性Hash算法?_Java后端技术的博客-CSDN博客_一致性hash

7.覆盖索引

select 的字段在索引中直接命中了,不需要回表操作