前言
作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。
对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。
实际上,MySQL并不难,今天这份最全的MySQL总结,助你向大厂“开炮”,面试不再被MySQL难倒。
注意:关于MySQL的内容整理,包括了面试题、学习笔记、使用文档以及Xmind思维图几个部分,需要高清完整版的请转发+关注,然后私信回复“666”获得免费领取方式
01、MySQL 面试题集合总结
1.1 MySQL 面试题(基础部分):
•drop、truncate、delete区别
•数据库三范式是什么?
•union和union all有什么不同?
•char、varchar2、varchar有什么区别?
•合并查询有哪些?
•SQL语句执行顺序
•null的含义
•MySQL、SqlServer、oracle写出字符存储、字符串转时间
•update语句可以修改结果集中的数据吗?
•B树和B+树的区别
•你建过索引吗? 建索引的原则
•索引的类型, 如主键索引
•查看SQL执行计划
•有十万条数据, 写SQL语句查询其中某字段较大值的几条数据
•子查询与关联查询的区别
•MySQL InnoDB、Mysaim的特点?
•乐观锁和悲观锁的区别??
•行锁和表锁的区别?
•数据库隔离级别是什么?有什么作用?
•MySQL主备同步的基本原理。
•如何优化数据库性能(索引、分库分表、批量操作、分页算法、升级硬盘SSD、业务优化、主从部署)
•SQL什么情况下不会使用索引(不包含,不等于,函数)
•一般在什么字段上建索引(过滤数据最多的字段)
•MySQL,B+索引实现,行锁实现,SQL优化
•如何解决高并发减库存问题
•数据库事务的几种粒度
1.2 MySQL 面试题(实战部分):
•数据库三范式,根据秒杀场景设计数据表
•数据库的主从复制
•死锁怎么解决
•mysql并发情况下怎么解决(通过事务、隔离级别、锁)
•触发器的作用?
•什么是存储过程?用什么来调用?
•存储过程的优缺点?
•存储过程与函数的区别
•索引的作用?和它的优点缺点是什么?
•什么样的字段适合建索引
•索引类型有哪些?
•什么是事务?什么是锁?
•什么叫视图?游标是什么?
•视图的优缺点
•列举几种表连接方式,有什么区别?
•主键和外键的区别?
•在数据库中查询语句速度很慢,如何优化?
•数据库三范式是什么?
•Varchar2和varchar有什么区别?
•Oracle和Mysql的区别?
•order by与group by的区别
1.3 MySQL 面试题(高级进阶部分):
•请解释关系型数据库概念及主要特点?
•请说出关系型数据库的典型产品、特点及应用场景?•请解释非关系型数据库概念及主要特点?
•请说出非关系型数据库的典型产品、特点及应用场景?•请详细描述SQL 语句分类及对应代表性关键字。
•请详细描述char(4)和varchar(4)的差别。
•如何授权oldboy 用户从172.16.1.0/24 访问数据库。
•什么是MySQL 多实例,如何配置MySQL 多实例?•如何加强MySQL 安全,请给出可行的具体措施?•delete 和truncate 删除数据的区别?
•MySQL Sleep 线程过多如何解决?
•sort_buffer_size 参数作用?如何在线修改生效?
•如何在线正确清理MySQL binlog?
•Binlog 工作模式有哪些?各什么特点,企业如何选择?•误操作执行了一个drop 库SQL 语句,如何完整恢复?•mysqldump 备份使用了-A -B 参数,如何实现恢复单表?•详述MySQL 主从复制原理及配置主从的完整步骤。
•如何开启从库的binlog 功能?
•MySQL 如何实现双向互为主从复制,并说明应用场景?•MySQL 如何实现级联同步,并说明应用场景?•MySQL 主从复制故障如何解决?
•如何监控主从复制是否故障?
•MySQL 数据库如何实现读写分离?
•生产一主多从从库宕机,如何手工恢复?
MySQL面试答案与解析:
02 关于MySQL 的实际使用
2.1 MySQL 性能优化的21个最佳实践
1.为查询缓存优化你的查询
2.EXPLAIN 你的SELECT 查询
3.当只要一行数据时使用LIMIT 1
4.为搜索字段建索引
5.在Join 表的时候使用相当类型的例,并将其索引
6.千万不要ORDER BY RAND()
7.避免SELECT *
8.永远为每张表设置一个ID
9.使用ENUM 而不是VARCHAR
10.从PROCEDURE ANALYSE() 取得建议
11.尽可能的使用NOT NULL
12.Prepared Statements
13.无缓冲的查询
14.把IP 地址存成UNSIGNED INT
15.固定长度的表会更快
16.垂直分割
17.拆分大的DELETE 或INSERT 语句
18.越小的列会越快
19.选择正确的存储引擎
20.使用一个对象关系映射器(Object Relational Mapper)
21.小心“永久链接”
2.2 MySQL 性能调优与架构设计——全册
•基础篇:
MySQLI基本介绍、MySQL架构组成、MySQL存储引擎简介、MySQL安全管理、MySQL 备份与恢复
•性能优化篇:
影响MySQLServer性能的相关因素、MySQI数据库锁定机制、MySQL数据库Query的优化、MySQL数据库Schema设计的性能优化、MySQLServer性能优化、常用存储引擎优化
•架构设计篇:
MySQL可扩展设计的基本原则、可扩展性设计之MySQLReplication、可扩展性设计之数据切分、可扩展性设计之C ache与Se ar ch的利用、MySQLCluster、高可用设计之思路及方案、高可用设计之MySQL监控
2.3 MySQL从入门到项目实践
•第1篇基础知识
Hello MySQL、数据库初探、MySQL常用管理工具的使用、MySQL 数据库的基本操作•第2篇核心应用
数据表的基本操作、MySQL视图、MySQL的数据类型和运算符、MySQL函数、MySQL 数据库查询语句详解、MySQL数据库的数据与索引操作、存储过程与存储函数、使用MySQL 触发器
•第3篇核心技术
MySQL数据库的权限管理与恢复、MySQL数据库的复制、MySQL的日志管理、利用
MySQL构建分布式应用、MySQL查询缓存、MySQL错误代码和消息的使用
•第4篇高级应用
在C#中实现MySQL数据库的连接、在Java中实现MySQL数据库的连接、在PHP中实现MySQL数据库的连接
•第5篇项目实战
项目实战统筹阶段——项目开发与规划、项目实战入门阶段——论坛管理系统数据库开发、项目实战提高阶段——企业会员管理系统数据库开发、项目实战高级阶段——新闻发布系统数据库开发
03 关于学习MySQL的思维脑图(Xmind)
MySQL 优化问题(Xmind)
事务、锁、sql优化原则、JION的原理、执行计划与执行明细、执行流程、表结构对性能的影响、索引
总结
总而言之,学习是自己的事,作为开发人员,MySQL是必须要掌握的,如果拥有大厂梦,基础可不能太差,如果你对MySQL还有很多不解问题,那么这份MySQL总结大礼包一定要拥有!。