最近疫情趋于平稳,出来面试的人也多了起来。我发现不少候选人,对数据库的认知还处在比较基础的阶段,以为会写“增删改查”、做表关联就足够了,那些工作中经常出现的问题,却支支吾吾答不上来,比如:
◆ count(*) 慢该如何解决?
◆ 对于千万级的大表,MySQL 要怎么优化?
◆ SQL 使用 Join 好,还是多次 Select 好?
◆ 1000 多万条数据,建了索引还是慢,该怎么办?
想来,我在用 MySQL 的过程中,遇到的问题也是五花八门,从开发技巧到管理维护,从性能问题到安全问题。
第一个感受就是,MySQL 本身是个设计优良的系统,其中有很多巧妙的设计思路,比如WAL 机制、索引的实现、缓存的处理方式等等,掌握好这些,能解决日常工作中的很多问题。
那会儿,也没少在网上找资料,虽说有所收获,但内容大多脱离真实的软件开发,看的时候各种明白,上手实操就原形毕露了。太简短不全面,禁不住深挖,因此很多次都掉坑里,那么如何避坑呢?
刚好,通过最近的学习整理出一份《MySQL性能调优与架构笔记及面试题》,笔记里都有详细讲到,已打包好,文末有免费获取方式。
MySQL性能调优与架构笔记
一、基础篇
- MySQL基本介绍
- MySQL架构组成
- MySQL存储引|擎简介
- MySQL安全管理
- MySQL备份与恢复
二、性能优化篇
- 影响MySQLServer性能的相关因素
- MySQL数据库锁定机制
- MySQL数据库Query的优化
- MySQL数据车Schema设计的性能优化
- MySQLServer性能优化
- 常用存储引擎优化
三、架构设计篇
- MySQL可扩展设计的基本原则
- 可扩展性设计之MySQLReplication
- 可扩展性设计之数据切分
- 可扩展性设计之Cache与Search的利用
- MySQLCluster
- 高可用设计之思路及方案
- 高可用设计之MySQL监控
部分内容展示:
BAT面试必问的MySQL核心题(附答案)
- 事务四大特性(ACID)原子性、一致性、隔离性、持久性?
- 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别?
- MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?
- MySQL的MyISAM与InnoDB两种存储引擎在,事务、锁级别,各自的适用场景?
- 查询语句不同元素(where、jion、limit、group by、having等等)执行先后
- 什么是临时表,临时表什么时候删除?
- MySQL B+Tree索引和Hash索引的区别?
- sql查询语句确定创建哪种类型的索引,如何优化查询
- 聚集索引和非聚集索引区别?
- 有哪些锁(乐观锁悲观锁),select 时怎么加排它锁?
- 非关系型数据库和关系型数据库区别,优势比较?
- 数据库三范式,根据某个场景设计数据表?
- 数据库的读写分离、主从复制,主从复制分析的 7 个问题?
- 使用explain优化sql和索引?
- MySQL慢查询怎么解决?
- 什么是 内连接、外连接、交叉连接、笛卡尔积等?
- MySQL都有什么锁,死锁判定原理和具体场景,死锁怎么解决?
- varchar和char的使用场景?
- MySQL 高并发环境解决方案?
- 数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)?
MySQL视频分享
由于篇幅字数原因,以上的学习MySQL笔记和MySQL面试解析已经整理成离线文档了,有需要的朋友麻烦转发后扫描小编的二维码即可获取资料免费领取方式了!