最后
总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习
还有更多学习笔记面试资料也分享如下:
在这个专题中,我们主要就是分为三个部分:
- 基础
- 性能优化
- 架构设计
基础篇:
- MySQL的基本介绍(包含了与其他数据库的比较以及MySQL主要的适用场景)
- MySQL的架构组成(包括物理文件组成,MySQLServer系统架构组成,自带工具使用介绍)
- MySQL存储引擎简介(包含了对MyISAM存储引擎简介,Innodb存储引擎简介,NDBCluster存储引擎简介以及其他引擎介绍)
- MySQL安全管理(包含数据库系统安全相关因素,权限系统介绍,访问授权策略等)
- MySQL备份与恢复(包含数据库备份使用场景,逻辑备份与恢复测试,物理备份与恢复测试以及备份策略的设计思路)
性能优化篇:
- 影响MySQLServer性能的相关因素(商业需求对性能的影响,系统架构及实现对性能的影响,Query语句对系统性能的影响,Schema设计对系统的性能影响,硬件环境对系统性能的影响)
- MySQL数据库锁定机制(锁定机制简介,各种锁定机制分析,合理利用锁机制优化MySQL)
- MySQL数据库Query的优化(理解MySQL的QueryOptimizer,Query语句优化基本思路和原则,充分利用Explain和Profiling,合理设计并利用索引,Join的实现原理及优化思路等)
- MySQL数据库Schema设计的性能优化(高效的模型设计,合适的数据类型,规范的对象命名)
- MySQLServer性能优化(MySQL安装优化,MySQL日志设置优化,QueryCache优化,MySQLServer其他常用优化)
- 常用存储引擎优化(MyISAM存储引擎优化,Innodb存储引擎优化)
架构设计篇:
MySQL可扩展设计的基本原则
可扩展性设计之MySQLReplication
可扩展性设计之数据切分
可扩展性设计之Cache与Search的利用
MySQLCluster
高可用设计之思路及方案
高可用设计之MySQL监控
MySQL实战
-
基础架构:一条SQL查询语句是如何执行的?
-
日志系统:一条SQL更新语句是如何执行的?
-
事务隔离:为什么你改了我还看不见?
-
深入浅出索引(上)
-
深入浅出索引(下)
-
全局锁和表锁 :给表加个字段怎么有这么多阻碍?
-
行锁功过:怎么减少行锁对性能的影响?
-
事务到底是隔离的还是不隔离的?
-
普通索引和唯一索引,应该怎么选择?
-
MySQL为什么有时候会选错索引?
-
怎么给字符串字段加索引?
-
为什么我的MySQL会“抖”一下?
-
为什么表数据删掉一半,表文件大小不变?
-
count(*)这么慢,我该怎么办?
-
日志和索引相关问题
-
“order by”是怎么工作的?
-
如何正确地显示随机消息?
-
为什么这些SQL语句逻辑相同,性能却差异巨大?
-
为什么我只查一行的语句,也执行这么慢?
-
幻读是什么,幻读有什么问题?
-
为什么我只改一行的语句,锁这么多?
-
MySQL有哪些“饮鸩止渴”提高性能的方法?
-
MySQL是怎么保证数据不丢的?
-
MySQL是怎么保证主备一致的?
-
MySQL是怎么保证高可用的?
-
备库为什么会延迟好几个小时?
-
主库出问题了,从库怎么办?
-
读写分离有哪些坑?
-
如何判断一个数据库是不是出问题了?
-
用动态的观点看加锁
-
误删数据后除了跑路,还能怎么办?
-
为什么还有kill不掉的语句?
最后
关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:
- Java基础部分
- 算法与编程
- 数据库部分
- 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)
这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。
作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。
度。**