一轮
- Java中hashmap和concurrenthashmap区别、数据结构区别
- MySQL中hash索引和b+树索引区别
- GC的常用算法和常见的垃圾回收器
- 重构过哪些代码功能?使用到了什么设计模式?
- 接口调优,如何优化的?
- 慢查询sql语句如何优化?
二轮
- 数据库表结构如何设计?
- 现有设备量多少?数据量有多大?实时数据如何存储的?遇到过什么问题?(分页查询缓慢--优化)
- 如何定位MySQL的慢查询,关注哪些列
- 联合索引abc,MySQL的查询语句where条件是abd,会使用到联合索引么?
- 联合索引abc、abe,查询语句条件是abd,会使用到哪一个联合索引?为什么?
- Redis的持久化方式有哪两种?Redis持久化过程中主进程是否会停止?(不会,为了性能考虑,Redis的持久化因为是通过fork子进程能的方式来进行持久化的,所以不会阻塞主线程)
- 分库分表的优缺点分析
优点 1、数据散列比较平均,单库单表访问压力分布比较均匀
2、拆分后业务清晰,达到专库专用。
3、可以实现热数据和冷数据的分离,将不经常变化的数据和变动较大的数据分散再不同的库/表中。
4、便于维护
缺点 1、分布式事务问题
2.跨库join的问题
3、横向扩容的问题(哈希取模做分表--数据迁移问题--一致性hash原理)
4、结果集合并、排序的问题
中间件 cobar、TDDL、atlas、sharding-jdbc、mycat
- 分库分表的优缺点分析