这份阿里大佬整理的MySQL实战文档,让我成功避开了面试官在MySQL上挖的那些坑
前言
和其他数据库系统相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥好的作用,但同时也会带来一点选择上的困难。MySQL并不完美,却足够灵活,能够适应高要求的环境,例如Web类应用。同时,MySQL既可以嵌入到应用程序中,也可以支持数据仓库、内容索引和部署软件、高可用的冗余系统、在线事务处理系统(OLTP)等各种应用类型。
为了充分发挥MySQL的性能并顺利地使用,就必须理解其设计。MySQL的灵活性体现在很多方面。例如,你可以通过配置使它在不同的硬件上都运行得很好,也可以支持多种不同的数据类型。但是,MySQL最重要、最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理(Query Processing) 及其他系统任务(Server Task)和数据的存储/提取相分离。这种处理和存储分离的设计可以在使用时根据性能、特性,以及其他需求来选择数据存储的方式。
先分享下MySQL面试题
请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
SQL 标准定义的四个隔离级别为:
read uncommited :读到未提交数据
read committed:脏读,不可重复读
repeatable read:可重读
serializable :串行事物
在 MySQL 中 ENUM 的用法是什么?
ENUM 是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用。
SQL 语法如下:
Create table size(name ENUM('Smail,'Medium','Large');
CHAR 和 VARCHAR 的区别?
CHAR 和 VARCHAR 类型在存储和检索方面有所不同。
CHAR 列长度固定为创建表时声明的长度,长度值范围是 1 到 255。
当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随
空格。
列的字符串类型可以是什么?
字符串类型是:
SET
BLOB
ENUM
CHAR
TEXT
VARCHAR
MySQL 中使用什么存储引擎?
存储引擎称为表类型,数据使用各种技术存储在文件中。
技术涉及:
Storage mechanism
Locking levels
Indexing
Capabilities and functions.
TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?
创建表时 TIMESTAMP 列用 Zero 更新。只要表中的其他字段发生更改,UPDATE
CURRENT_TIMESTAMP 修饰符就将时间戳字段更新为当前时间。
主键和候选键有什么区别?
表格的每一行都由主键唯一标识, 一个表只有一个主键。
主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引
用。
MySQL 数据库服务器性能分析的方法命令有哪些?
Show status 一些值得监控的变量值: Bytes received 和 Bytes sent 和服务器之间
来往的流量。 Com 服务器正在执行的命令。 Created 在查询执行期限间创建的临时
表和文件。 Handler 存储引擎操作。 Select 不同类型的联接执行计划。 Sort_* 几
种排序信息。 Show session status like ‘Select’; Show profiles SET
profiling=1; Show profiles\G Show profile;
LIKE 和 REGEXP 操作有什么区别?
LIKE 和 REGEXP 运算符用于表示 ^ 和%。
SELECT * FROM <tablename> WHERE * REGEXP "^b";
SELECT * FROM <tablename> WHERE * LIKE "%b";
BLOB 和 TEXT 有什么区别?
BLOB 是一个二进制对象,可以容纳可变数量的数据。有四种类型的 BLOB
TINYBLOB
BLOB
MEDIUMBLOB 和
LONGBLOB
它们只能在所能容纳价值的最大长度上有所不同。
TEXT 是一个不区分大小写的 BLOB。四种 TEXT 类型
TINYTEXT
TEXT
MEDIUMTEXT 和
LONGTEXT
它们对应于四种 BLOB 类型,并具有相同的最大长度和存储要求。
BLOB 和 TEXT 类型之间的唯一区别在于对 BLOB 值进行排序和比较时区分大小
写,对 TEXT 值不区分大小写。
数据库的三范式?
第一范式:数据库表的每一个字段都是不可分割的。
第二范式:数据库表中的非主属性只依赖于主键。
第三范式:不存在非主属性对关键字的传递函数依赖关系。
MySQL 表中允许有多少个 TRIGGERS?
在 MySQL 表中允许有六个触发器,如下:
BEFORE INSERT
AFTER INSERT
BEFORE UPDATE
AFTER UPDATE
BEFORE DELETE and
AFTER DELETE
限于平台篇幅原因,同时也为了给后面的留下足够的空间,面试题只拿出来了一部分,更多的内容小编已经整理成了文档,感兴趣的朋友可以帮忙转发文章后,关注私信回复【学习】来免费获取
在互联网行业,MySQL数据库毫无疑问已经是最常用的数据库。LAMP (Linux +Apache + MySQL + PHP)甚至已经成为专有名词,也是很多中小网站建站的首选技术架构。
MySQL实战文档
这份文档在我面试的时候帮了我很大的忙,也因为篇幅原因,这里只截取了部分,感兴趣的朋友可以同上面的数据库面试资料一起获取
ps:想来还有很多人不喜欢看文档,所以小编也整理了一些MySQL相关的视频,供大家学习
这些年,面试官在MySQL上挖的那些坑
5W架构师都不懂的MySQL事务与锁机制大揭秘
如何获取?
帮忙转发这篇文章后,关注私信回复【学习】即可获取高清大纲,以上 spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构
如何私信?
关注我后,在手机上,点击头像进我的主页,主页上方右上角有个私信,点击私信回复关键字【学习】即可