1.8W字MySQL超全笔面试题(含答案) 5月最新整理 .NET开发者必看

Posted 李志宽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.8W字MySQL超全笔面试题(含答案) 5月最新整理 .NET开发者必看相关的知识,希望对你有一定的参考价值。

早起的鸟儿有虫吃,提前备战跳槽季!关注下就会发现,腾讯网易顺丰等几个招聘.NET的大厂,都在明确要求mysql数据库了,这就是风向标!花了半个月的时间,我整理了这几年高频的MySQL数据库题目,认真找了答案,加起来超过1.8w字了,这会儿分享给大家!

腾讯开招.NET Core 要求精通MySQL

面试题完整内容(大纲)

当下一共是45道题,带答案一共1.8w字,涵盖了MySQL基础、进阶和优化的内容。

可自测一番

整套题一万多字,不好全上,我安排几题大家可自测一下。

1.6.说说存储过程与函数的区别

(1)存储过程用户在数据库中完成特定操作或者任务(如插入,删除等),函数用于返回特定的数据。

(2)存储过程声明用procedure,函数用function。

(3)存储过程不需要返回类型,函数必须要返回类型。

(4)存储过程可作为独立的pl-sql执行,函数不能作为独立的plsql执行,必须作为表达式的一部分。

(5)存储过程只能通过out和in/out来返回值,函数除了可以使用out,in/out以外,还可以使用return返回值。

(6)sql语句(DML或SELECT)中不可用调用存储过程,而函数可以。

1.13.什么是 内连接、外连接、交叉连接、笛卡尔积等?

内连接: 只连接匹配的行 左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行 右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行 例如1:

SELECT a.,b. FROM luntan LEFT JOIN usertable as b ON a.username=b.username

例如2:

SELECT a.,b. FROM city as a FULL OUTER JOIN user as b ON a.username=b.username

全外连接: 包含左、右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行。 交叉连接: 生成笛卡尔积-它不使用任何匹配或者选取条件,而是直接将一个数据源中的每个行与另一个数据源的每个行都一一匹配 例如:

SELECT type,pub_name FROM titles CROSS JOIN publishers ORDER BY type

2.1.说一下 MySQL 的行锁和表锁?

MyISAM 只支持表锁,InnoDB 支持表锁和行锁,默认为行锁。 表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低。 行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高。

2.2.MySQL的默认事务隔离级别是?

读未提交(RU): 一个事务还没提交时, 它做的变更就能被别的事务看到. 读提交(RC): 一个事务提交之后, 它做的变更才会被其他事务看到. 可重复读(RR): 一个事务执行过程中看到的数据, 总是跟这个事务在启动时看到的数据是一致的. 当然在可重复读隔离级别下, 未提交变更对其他事务也是不可见的. 串行化(S): 对于同一行记录, 读写都会加锁. 当出现读写锁冲突的时候, 后访问的事务必须等前一个事务执行完成才能继续执行。

大家自测一下,只放了几题,后续我一有时间就会加更,有需要的朋友可关注+转发后 私信【MYSQL】直接拿完整版,全套题,带详细答案。

 

********************************************************************

彩蛋:MySQL入门到精通视频

如果对MySQL还没啥基础的,或者看文档太枯燥的,这里为大家准备了一套《MySQL入门到精通》的视频教程

这个是视频清单截图

MySQL入门到精通实战-全套视频

可先看看第一节,完整内容共45个视频,有需要的朋友可关注+转发后 私信【MYSQL】领取全套视频。

 

2.13.请你介绍一下Mysql的MVCC机制

MVCC是一种多版本并发控制机制,是MySQL的InnoDB存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。MVCC是通过保存数据在某个时间点的快照来实现该机制,其在每行记录后面保存两个隐藏的列,分别保存这个行的创建版本号和删除版本号,然后Innodb的MVCC使用到的快照存储在Undo日志中,该日志通过回滚指针把一个数据行所有快照连接起来。

2.14.常用的Mysql复制架构有哪些?

(1)一主多从 在主库读取请求压力非常大的场景下, 可以通过配置一主多从复制架构实现读写分离, 把大量对实时性要求不是特别高的读请求通过负载均衡分布到多个从库上, 降低主库的读取压力,在主库出现异常宕机的情况下, 可以把一个从库切换为主库继续提供服务 。

(2)多级复制 一主多从的架构能够解决大部分读请求压力特别大的场景的需求, 考虑到 MysQL的复制是主库“推送” Binlog日志到从库,主库的 I/0压力和网络压力会随着从库的增加而增长(每个从库都会在主库上有一个独立的 Binlog Dump线程来发送事件), 而多级复制架构解决了一主多从场景下,主库额外的 I/0和网络压力。

(3)双主复制/Dual Master 其实就是主库 Master和 Master2互为主从, client客户端的写请求都访问主库 Master,而读请求可以选择访问主库 Master或 Master2。

2.19.说说自己对于 MySQL 常见的两种存储引擎:MyISAM与InnoDB的理解?

InnoDB 引擎:InnoDB 引擎提供了对数据库 acid 事务的支持,并且还提供了行级锁和外键的约束,它的设计的目标就是处理大数据容量的数据库系统。MySQL 运行的时候,InnoDB 会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎是不支持全文搜索,同时启动也比较的慢,它是不会保存表的行数的,所以当进行 select count() from table 指令的时候,需要进行扫描全表。由于锁的粒度小,写操作是不会锁定全表的,所以在并发度较高的场景下使用会提升效率的。

MyIASM 引擎:MySQL 的默认引擎,但不提供事务的支持,也不支持行级锁和外键。因此当执行插入和更新语句时,即执行写操作的时候需要锁定这个表,所以会导致效率会降低。不过和 InnoDB 不同的是,MyIASM 引擎是保存了表的行数,于是当进行 select count() from table 语句时,可以直接的读取已经保存的值而不需要进行扫描全表。所以,如果表的读操作远远多于写操作时,并且不需要事务的支持的,可以将 MyIASM 作为数据库引擎的首选。

这套面试题还有哪些遗漏的,欢迎大家留言,我会继续更新的。

 

感谢大家点赞收藏本文,一起建设.NET社区。祝2021年每位小伙伴儿都能升职加薪,迎娶白富美,走向人生巅峰!

面试题部分内容来源于互联网,若有侵权之处可联系删除。整个内容整理不易,遗漏不足之处还请大家多担待,也可以提提建议!我会持续更新干货,期待关注!希望通过自己点滴的努力和知识分享,帮到更多开发者。一起努力,.NET明天会更好!

文末彩蛋:

可直接获取全新录制C#基础语法全套视频+代码的资源!

全新录制C#基础语法全套视频及代码 

需要本文全部资料的朋友可以关注+转发后 私信【MYSQL】免费领取全套资料

 

2021,一起加油!

往期精彩:硬核!顶级黑客整理出300条渗透常用命令的速查手册(文末福利)

以上是关于1.8W字MySQL超全笔面试题(含答案) 5月最新整理 .NET开发者必看的主要内容,如果未能解决你的问题,请参考以下文章

2021年超全超详细的最新大数据开发面试题,附答案解析

300页!2020年全网最新Java面试题(附答案)开放下载!超全!!

阿里蚂蚁金服中间件(Java 4轮面试题含答案):Redis缓存+线程锁+微服务等

阿里蚂蚁金服中间件(Java 4轮面试题含答案):Redis缓存+线程锁+微服务等

java程序员面试题大全含答案(2018--2019)

20道BAT面试官最喜欢问的JVM+MySQL面试题(含答案解析)