得物后端三面
一张两千万的基于innodb的表,自增id,select * where id = 123 ,要查询几次
(2~3次 1~2次io,2000行和2000w行的区别是什么
(b+树高度差1,实际命中缓存仅多一次索引页查询,命中缓存几乎无感) (但是批量查会变慢)
mysql的buffer pool
(缓存数据页和索引页 提高读写性能多page 高效页缓存 lru机制 young(热数据0+old(冷数据)写入机制 脏页刷盘)
Mysql宕机断电情况怎么保证不丢数据
(redolog + wal日志先行)
如果表数据量大导致crud比较慢,如何优化
(sql 索引和查询优化表结构 分表分区 冷热数据 存储引擎层 缓存池 系统架构 读写分离 引入redis 异步化和队列)
如何保证redis缓存的都是热点数据
(冷热分离 应用层统计热点key 商品预测数据 淘汰策略 lru/lfu ttl 多级缓存架构)
redis和sql的数据一致性
(旁路缓存 写操作先写后删 延迟双删 最终一致性 消息队列辅助 兜底)
golang singleflight
(防止重复请求 一个key的多个并发调用只执行一次)
缓存击穿原理
(热点key失效)
一个http请求 没收到响应可以发新请求吗
(请求是否幂等 post不行)
http的client怎么保证接受相应完整性
(tcp协议 分片重组 ack 校验和http 响应头content length /chunked)
零拷贝
(优化数据传输路径)
数据从磁盘到用户内存经过几次拷贝操作
(传统io 2 内核页缓存内存映射mmap 1 零拷贝 1dma)
如何保证消息队列无重复消息
(去重+幂等消费&发送 offset docid )
如何防止消息队列重复消费
rocketmq原理
消息队列topic分区数可以增加吗
消费者的分区重平衡原理
(消费者数量或订阅关系发生变化 topic重分配)
golang里gomodule作用
(包管理和依赖版本控制 Go.mod go.sum go build)
golang里import和require区别
(require在gomodules里用 构建时 import编译时)
(2~3次 1~2次io,2000行和2000w行的区别是什么
(b+树高度差1,实际命中缓存仅多一次索引页查询,命中缓存几乎无感) (但是批量查会变慢)
mysql的buffer pool
(缓存数据页和索引页 提高读写性能多page 高效页缓存 lru机制 young(热数据0+old(冷数据)写入机制 脏页刷盘)
Mysql宕机断电情况怎么保证不丢数据
(redolog + wal日志先行)
如果表数据量大导致crud比较慢,如何优化
(sql 索引和查询优化表结构 分表分区 冷热数据 存储引擎层 缓存池 系统架构 读写分离 引入redis 异步化和队列)
如何保证redis缓存的都是热点数据
(冷热分离 应用层统计热点key 商品预测数据 淘汰策略 lru/lfu ttl 多级缓存架构)
redis和sql的数据一致性
(旁路缓存 写操作先写后删 延迟双删 最终一致性 消息队列辅助 兜底)
golang singleflight
(防止重复请求 一个key的多个并发调用只执行一次)
缓存击穿原理
(热点key失效)
一个http请求 没收到响应可以发新请求吗
(请求是否幂等 post不行)
http的client怎么保证接受相应完整性
(tcp协议 分片重组 ack 校验和http 响应头content length /chunked)
零拷贝
(优化数据传输路径)
数据从磁盘到用户内存经过几次拷贝操作
(传统io 2 内核页缓存内存映射mmap 1 零拷贝 1dma)
如何保证消息队列无重复消息
(去重+幂等消费&发送 offset docid )
如何防止消息队列重复消费
rocketmq原理
消息队列topic分区数可以增加吗
消费者的分区重平衡原理
(消费者数量或订阅关系发生变化 topic重分配)
golang里gomodule作用
(包管理和依赖版本控制 Go.mod go.sum go build)
golang里import和require区别
(require在gomodules里用 构建时 import编译时)
全部评论
为啥你三面这么多八股,我全程问实习
为什么得物还不给我面试


相关推荐