这份阿里大佬整理的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性能优化、分布式架构

如何私信?

关注我后,在手机上,点击头像进我的主页,主页上方右上角有个私信,点击私信回复关键字【学习】即可

全部评论

相关推荐

11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务