纷享销客
- 时间
- 2026-08
- 来源
- 牛客网
《面试题目》
- 时间:8月11日
- 公司:纷享销客
- 形式:一面,45分
- 自我介绍后问
- SaaS多租户数据怎么隔离?
- SQL漏带tenant_id怎么兜底?
- 权限修改后缓存怎么失效?
- 百万客户数据怎么导出?
- Spring AOP自调用为何失效?
- MySQL覆盖索引是什么?
- Redis大Key怎么拆?
- 线程池满了怎么处理?
- 手写链表反转。
- 多租户追得最细。我答每张表加tenant_id,面试官问漏写条件怎么办。我补了MyBatis拦截器统一注入租户条件,关键表加联合索引,测试补跨租户用例。导出用游标分页读取,边读边写,不把数据一次塞进内存。算法一次写完,最后反问了客户数据权限怎么做审计。
《参考解析》
- Redis常用于缓存、分布式锁和计数。缓存与数据库更新通常采用“先写数据库、再删除缓存”,并通过重试、延时双删或消息补偿处理删除失败。
- MySQL索引通常使用B+树,叶子节点按顺序连接,适合范围查询;设计索引时结合选择性、最左匹配原则和执行计划,避免无效索引与回表开销。
- 并发问题应先明确共享状态和一致性边界,再选择锁、CAS或队列。线程池需要根据任务是CPU密集还是IO密集设置核心线程数、队列容量和拒绝策略,并监控活跃数与队列长度。
- 算法题先写出不变量和边界条件,再分析复杂度;常见数组、链表和树问题可分别使用双指针、哈希表、递归或迭代遍历,目标是在线性或对数复杂度内完成。