主题
面试速答(先看这里)
**一句话结论:**3年经验,2家公司(新能源,to B业务),智慧园区-智慧物业-能耗管理
60秒标准回答:
3年经验,2家公司(新能源,to B业务),智慧园区-智慧物业-能耗管理
能耗管理业务介绍一下,智能控制、能耗统计、性能优化、数据准确度提升、稳定性
性能优化、数据准确度、稳定性,分别做了哪些事情?换成 adb 、业务宽表拆解
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
回答主线:
- **要点1:**能耗管理业务介绍一下,智能控制、能耗统计、性能优化、数据准确度提升、稳定性,
- **要点2:**性能优化、数据准确度、稳定性,分别做了哪些事情?
- **要点3:**数据库切换如何保证的稳定?
- **要点4:**为啥 Netty 不基于 AIO 做呢。
- **要点5:**Innodb 的索引介绍下?
**记忆锚点:**Mysql → Innodb → redis → SQL → key → myisam
关键取舍:
- 3年经验,2家公司(新能源,to B业务),智慧园区-智慧物业-能耗管理 能耗管理业务介绍一下,智能控制、能耗统计、性能优化、数据准确度提升、稳定性, 性能优化、数据准确度、稳定性,分别做了哪些事情?
加分表达:
- netty 适合用在什么场景中?
- 如果只有一个条件查就没有建联合索引的必要了么?
追问准备:
- 3年经验,2家公司(新能源,to B业务),智慧园区-智慧物业-能耗管理 能耗管理业务介绍一下,智能控制、能耗统计、性能优化、数据准确度提升、稳定性, 性能优化、数据准确度、稳定性,分别做了哪些事情?
- 换成 adb 、业务宽表拆解, 数据库切换如何保证的稳定?
- 代码中多数据源的管理是怎么做的?
- 为啥 adb 查询快知道么?
面试者背景
> 3年经验,2家公司(新能源,to B业务),智慧园区-智慧物业-能耗管理 > > 能耗管理业务介绍一下,智能控制、能耗统计、性能优化、数据准确度提升、稳定性, > > 性能优化、数据准确度、稳定性,分别做了哪些事情?换成adb、业务宽表拆解, > > 数据库切换如何保证的稳定?代码中多数据源的管理是怎么做的? > > 为啥adb查询快知道么? > > 项目中有难度的地方有吗? > > Netty相比原生的IO模型有啥优势?封装NIO、粘包/拆包、IO多路复用、reactor模型 > > 为啥Netty不基于AIO做呢。NIO用的是堆内内存还是堆外内存?directByteBuffer为啥用堆外内存?零拷贝,堆外内存溢出如何排查,dump对堆外内存有用吗?netty适合用在什么场景中?im、通信、 > > Innodb的索引介绍下?B+树。Innodb中的B+树长什么样?只有叶子节点之间有双向指针吗?叶子节点的没条记录之间是如何关联的? > > Innodb的索引结构和myisam有区别吗?myisam有聚簇索引吗? > > 创建索引的时候需要考虑哪些问题?使用频率、查询条件、前缀长度、 > > 什么时候会考虑用联合索引?如果只有一个条件查就没有建联合索引的必要了么? > > 索引是越多越好么?a,b联合索引,在写SQL的时候where a = xx and b=xx 的顺序有关系吗? > > Mysql优化器都会做哪些方面的优化?索引选择。 > > 如果优化器选错了索引怎么办?force index > > 有哪些情况会导致慢SQL?没走索引、索引失效、数据量大、多表join、 > > 有没有可能走了索引还是很慢?如何确认一个SQL有没有走索引?type、extra, > > using index是什么意思?using where一定没走索引吗? > > Mysql的主从原理介绍一下。主从延迟如何排查? > > Mysql中用like能走索引吗?‘abc%’可以,‘%abc’这种有办法优化吗? > > Mysql了解过8.0吗?redis有一批key瞬时过期了,会导致什么问题?怎么解决呢? > > redis有一批key瞬时过期了,除了影响数据库,还有其他影响吗?读写会变慢吗?单线程。 > > Key过期会立即删除吗?redis的big key问题?很大是多大?会有什么问题?如何解决呢?怎么拆?按照日期 > > 分库分表介绍下?单表数据量大导致查询慢,除了考虑分表之外,还有哪些方案?归档(冷热分离)、缓存、 > > 数据量的话,你觉得做分库分表一定是一个好的方案吗?
题目解析
> Netty相比原生的IO模型有啥优势?封装NIO、粘包/拆包、IO多路复用、reactor模型 > > 为啥Netty不基于AIO做呢。NIO用的是堆内内存还是堆外内存?directByteBuffer为啥用堆外内存?零拷贝,堆外内存溢出如何排查,dump对堆外内存有用吗?netty适合用在什么场景中?im、通信、
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/si6sg9so9h755786
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/ivdwqy35z3zwmolr
> Innodb的索引介绍下?B+树。Innodb中的B+树长什么样?只有叶子节点之间有双向指针吗?叶子节点的没条记录之间是如何关联的? > > Innodb的索引结构和myisam有区别吗?myisam有聚簇索引吗?
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/oeng2rl61a11w4cf
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/oslim2flge8d5oyy
> 创建索引的时候需要考虑哪些问题?使用频率、查询条件、前缀长度、 > > 什么时候会考虑用联合索引?如果只有一个条件查就没有建联合索引的必要了么? > > 索引是越多越好么?
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/gr547ixff3cbh7mf
> a,b联合索引,在写SQL的时候where a = xx and b=xx 的顺序有关系吗? > > Mysql优化器都会做哪些方面的优化?索引选择。 > > 如果优化器选错了索引怎么办?force index
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/tbr7gti6k1uvnvf0
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/em92v7eo2wke5zeu
> 有哪些情况会导致慢SQL?没走索引、索引失效、数据量大、多表join、 > > 有没有可能走了索引还是很慢?
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/hxbm347o9cnrf7h6
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/em92v7eo2wke5zeu
> 如何确认一个SQL有没有走索引?type、extra, > > using index是什么意思?using where一定没走索引吗?
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/dkh4r53u6t6tiy9h
> Mysql的主从原理介绍一下。主从延迟如何排查?
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/hkmvkovcd2uvkowf
> Mysql中用like能走索引吗?‘abc%’可以,‘%abc’这种有办法优化吗?
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/qenlzl7zee0xwtmd
> Mysql了解过8.0吗?
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/kf1hrbgagchxolwq
> redis有一批key瞬时过期了,会导致什么问题?怎么解决呢? > > redis有一批key瞬时过期了,除了影响数据库,还有其他影响吗?读写会变慢吗?单线程。
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/sheq5onhskxoggai
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/ocgguq12eiluctaa
> Key过期会立即删除吗?
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/ks9mgbgflr2wvnsa
> redis的big key问题?很大是多大?会有什么问题?如何解决呢?怎么拆?按照日期
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/wd2z660hgo01rygq
> 分库分表介绍下?单表数据量大导致查询慢,除了考虑分表之外,还有哪些方案?归档(冷热分离)、缓存、 > > 数据量的话,你觉得做分库分表一定是一个好的方案吗?
https://www.yuque.com/laiyanhong-9tr5c/zwpzru/brgr5auqh3mulqow