万字总结 MySQL核心知识,赠送25连环炮
关注“Java后端技术全栈”
回复“000”获取大量电子书
前言
大家好,我是老田,之前写过 JVM、并发编程连环炮。然后有很多小伙伴私下找我就我继续把MySQL的连环炮整理出来,但是由于本人比较懒,又加上最近有点忙,所以拖到了今天才发出来。
有志者,事竟成;破釜沉舟,百二秦关终归楚;苦心人,天不负;卧薪尝胆,三千越甲可吞吴。
本文总结了MySQL的核心知识点,然后结合20个连环炮,可以帮助大家学习MySQL、快速复习MySQL有所帮助。
MySQL的20个连环炮,如下:
1、数据库的三范式是什么?
2、DDL、DML、DCL、TCL分表代码什么含义?
3、熟悉MySQL的整体架构吗?
4、说说存储引擎 Inno DB和MyISAM的区别
5、熟悉哪些日志文件?
6、熟悉慢查询吗?
7、MySQL优化手段有哪些?
8、什么是事务?
9、事务的四大特性是什么?
10、说说Mysql的四种隔离级别
11、MySQL默认隔离级别是哪个?
12、知道MySQL中哪些锁?
13、并发读写容易带来什么问题?
14、说说你对MySQL中MVCC的认识
15、是如何解决幻读的?
15、索引是什么?
17、MySQL索引数据结构有哪几种?
18、有哪些类型的索引呢?
19、Hash和BTree作为MySQL索引,说说你对此有什么想法?
20、索引优化有哪些方式?
21、哪些场景建议创建索引?
22、哪些场景不建议使用索引?
23、用过explain吗?怎么用的?
24、熟悉MySQL锁优化吗?
25、熟悉哪些MySQL调优策略?
MySQL知识点
需要思维导图的,tj20120622,免费获取
基础知识
范式
第一范式
数据库中的所有字段(列)都是单一属性,不可再分的。 这个单一属性由基本的数据类型所构成,如整型、浮点型、字符串等。第一范式是为了保证列的原子性。
第二范式
数据库中的表不存在非关键字段对任一关键字字段的部分函数依赖 部分函数依赖是指存在着组合关键字中的某一关键字决定非关键字的情况。第二范式在满足了第一范式的基础上,消除非主键列对联合主键的部分依赖
第三范式
所有非主键属性都只和候选键有相关性,也就是说非主键属性之间应该是独立无关的。第三范式是在满足了第二范式的基础上,消除列与列之间的传递依赖。
SQL语句汇总
DDL
DDL是数据定义语言(Data Definition Language)的简称, 它处理数据库schemas和描述数据应如何驻留在数据库中。
CREATE:创建数据库及其对象(如表,索引,视图,存储过程,函数和触发器) ALTER:改变现有数据库的结构 DROP:从数据库中删除对象 TRUNCATE:从表中删除所有记录,包括为记录分配的所有空间都将被删除 COMMENT:添加注释 RENAME:重命名对象
DML
DML是数据操纵语言(Data Manipulation Language)的简称, 包括最常见的SQL语句
SELECT、INSERT、UPDATE、DELETE、GROUP BY、HAVING
DCL
DCL是数据控制语言(Data Control Language)的简称, 它包含诸如GRANT之类的命令,并且主要涉及数据库系统的权限,权限和其他控件。
GRANT :允许用户访问数据库的权限 REVOKE:撤消用户使用GRANT命令赋予的访问权限
TCL
TCL是事务控制语言(Transaction Control Language)的简称, 用于处理数据库中的事务
COMMIT:提交事务 ROLLBACK:在发生任何错误的情况下回滚事务
架构介绍
连接层:负责处理客户端的连接以及权限的认证。
服务层:定义有许多不同的模块,包括权限判断,SQL接口,SQL解析,SQL分析优化, 缓存查询的处理以及部分内置函数执行等。MySQL的查询语句在服务层内进行解析、优化、缓存以及内置函数的实现和存储。
引擎层:负责MySQL中数据的存储和提取。MySQL中的服务器层不管理事务,事务是由存储引擎实现的。其中使用最为广泛的存储引擎为InnoDB,其它的引擎都不支持事务。
存储层:负责将数据存储于设备的文件系统中。
存储引擎
查看命令
show engines; <br>show variables like '%storage_engine%'<br>