Skip to content

面试速答(先看这里)

**一句话结论:**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