面试-核心篇

数据存储

2、说说反模式设计:反范式,表数据冗余

3、说说分库与分表设计:用户中心,用户id维度分库分表,通过mod用户id或者hash等方式来实现数据路由

4、分库与分表带来的分布式困境与应对之策:分布式事务,采用分布式事务系统|表关联查询,拆分跨表查询脚本|..

5、说说 SQL 优化之道:explain,索引,冗余

6、MySQL 遇到的死锁问题

7、存储引擎的 InnoDB 与 MyISAM:InnoDB支持事务--MyISAM不支持,InnoDB支持行级锁,表锁--MyISAM只支持表锁

8、数据库索引的原理:B+树

9、为什么要用 B-tree

10、聚集索引与非聚集索引的区别:聚集索引的数据记录物理顺序一致,非聚集索引B+树

11、limit 20000 加载很慢怎么解决:排序+ID限制范围

12、选择合适的分布式主键方案:db的,sequnce(tair),uuid。。。

13、选择合适的数据存储方案:

14、ObjectId 规则:

15、聊聊 MongoDB 使用场景

16、倒排索引:搜索的反向索引

17、聊聊 ElasticSearch 使用场景

缓存使用
1、Redis 有哪些类型:set,zset,list,string,hash

2、Redis 内部结构:

3、聊聊 Redis 使用场景:高性能,缓存

4、Redis 持久化机制:aof(增量)/rdb(全量)

5、Redis 如何实现持久化:aof阻塞落盘/rdb进程异步落盘

6、Redis 集群方案与实现:客户端分片(jedis)/基于代理的分片(codis)/路由查询(redis-cluster)

7、Redis 为什么是单线程的:缓存主要耗费的是IO,不是CPU,所以单线程已经满足要求

8、缓存奔溃

9、缓存降级

10、使用缓存的合理性问题

消息队列
1、消息队列的使用场景:异步化(注册发邮件),削峰()

2、消息的重发补偿解决思路:重试+幂等性

3、消息的幂等性解决思路:id记录表

4、消息的堆积解决思路:定位堆积的原因

5、自己如何实现消息队列:

6、如何保证消息的有序性:在选择broker的时候采用mod业务id的方式,让同一个业务id数据路由到同一个broker(rocketmq)

猜你喜欢

转载自www.cnblogs.com/vindia/p/9070133.html
今日推荐