网络实用技术基础第四章自测_整理1.8万字MySQL超全面试题,带答案可自测,免费分享!...

cfcfaaf357153ef9db45a0ac804e2885.png

转眼已到年底,备战新年跳槽季的热度越来越高,本人作为国内某互联网公司的技术担当,也曾面试过大大小小的开发。近期身边同事都在向我请教面试经验,反观腾讯网易顺丰等大厂的招聘,对数据库的要求已经越来越高!

习惯了分享干货,造福大家的我也自发整理了一套My SQL 数据库面试题,超1.8W字,不多说先上大纲图!

面试题完整内容(大纲)

3c737893afcedec9e969c6398920aac0.png
面试题大纲-1

a543d0c98bac2590aa41bd7f6ffdb7e5.png
面试题大纲-2

整套题超1.8万字,昨晚才整理完毕。原题+答案,从基础知识到高级进阶,最新最全的题我都整一起了,这里也感谢身边顶级大佬的原题分享!上图为截图,内容过多,大家可点击下方官方插件复制我的微信号,添加我后免费分享!

0b406a5454c85a6b916c45dc0f75f0e4.png

可自测一番

整套题一万多字,不好全上,我安排几题大家可自测一下。所有问题和答案随时找我拿!点插件!点插件!点插件找我拿!

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): 对于同一行记录, 读写都会加锁. 当出现读写锁冲突的时候, 后访问的事务必须等前一个事务执行完成才能继续执行。

2.5.一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几?

表类型如果是 MyISAM ,那 id 就是 8。 表类型如果是 InnoDB,那 id 就是 6。 InnoDB 表只会把自增主键的最大 id 记录在内存中,所以重启之后会导致最大 id 丢失。

大家自测一下,只放了几题,后续我一有时间就会加更,大家也可点击下方插件找我直接拿完整版,全套题,带详细答案。

0b406a5454c85a6b916c45dc0f75f0e4.png

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

彩蛋:MySQL入门到精通视频

知乎视频​www.zhihu.com

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

为帮助大家学习,又整理了一波My SQL入门到精通实战讲解视频合集,大家可先看看第一节,完整内容共45个视频,大家可点击下方链接,领取全套视频。自动复制微信号后添加好友即可获取。

0b406a5454c85a6b916c45dc0f75f0e4.png

12月5日加更

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 作为数据库引擎的首选。

大家自测一下,只放了几题,后续我一有时间就会加更,大家也可点击下方插件找我直接拿完整版,全套题,带详细答案。

0b406a5454c85a6b916c45dc0f75f0e4.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值