暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

高级测试面试题(mysql篇)

全栈测试笔记 2020-10-08
457

点击蓝色“全栈测试笔记”关注我哟

加个“星标”,阅读我的文章,一起学习提升。


现如今,面试高级测试、性能测试等岗位,面试官都喜欢问一些底层原理的问题,感觉和开发的面试越来越靠近了。
比如mysql,可能会问如下问题:
InnoDB行锁实现方式?
innodb如何解决幻读?
什么是回表?
B-树的不足?
B+树如何解决了B-树的不足?
哪些情况,创建了索引也用不上?
什么是聚集索引、索引覆盖、索引下推?
辅助索引的叶子节点为什么不存储数据的指针地址?
InnoDB、MyISAM的优缺点?
事务的隔离级别有哪些?分别解决什么问题?
MVCC的原理?
主从复制原理?

虽然实际工作不一定能用上,但这样确实可以看出面试者对知识的掌握程度和研究深度;
本文主要演示一下之前一位微友遇到的面试题(上面第一个问题);
从mysql-5.5.5开始,InnoDB就作为默认的存储引擎了,其相关的特性,可以参考官网:https://dev.mysql.com/doc/refman/5.7/en/innodb-storage-engine.html
 

创建表

CREATE TABLE `employeeInfo` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`employeeId` varchar(10) DEFAULT NULL,
`job` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_employeeId` (`employeeId`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;

 添加数据
插入数据
insert INTO employeeInfo(name,employeeId,job) VALUES('全栈测试笔记0001','qzcsbj0001','dev');
insert INTO employeeInfo(name,employeeId,job) VALUES('全栈测试笔记0002','qzcsbj0002','manager');

不使用索引

说明:
    update/insert/delete默认加上排它锁,下面为了演示,手动在事务中加
    下面选中的语句即为当前执行的语句

session1对第一条数据加排它锁,where后面字段是非索引字段
session2对第二条数据加排它锁,阻塞
session2插入数据,阻塞
至此,说明session1锁表了。

主键索引

session1对第一条数据加排它锁,where后面字段是主键索引字段
session2对第一条数据加排它锁,阻塞,因为是同一条数据
session2对第二条数据加排它锁,成功
session2插入数据,成功
至此,说明session1是行锁。

唯一索引

session1对第一条数据加排它锁,where后面字段是唯一索引字段
session2对第一条数据加排它锁,阻塞,因为是同一条数据
session2对第二条数据加排它锁,成功
session2对第一条数据加排它锁(where后面是主键索引字段),阻塞,因为是同一条数据
session2对第二条数据加排它锁(where后面主键索引字段,成功
session2插入数据,成功
至此,说明session1是行锁。
 
结论:InnoDB的行锁是通过索引实现的,如果session1不通过索引访问数据,就会锁表;另外,不同记录的索引键最好不要一样,否则会冲突导致锁等待。

抛砖引玉,欢迎交流;
声明:封面图片来源于网络,如有侵权,请联系删除。

END


星标|在看|留言|转发分享,铁粉


长按二维码关注,第一时间获取干货

添,交流测试


猜你喜欢

点击阅读☞一篇文章告诉你怎么做性能测试

点击阅读☞如何面试性能测试

点击阅读☞面试题(造火箭必备技能):请举例一个最有成就感的性能bug

点击阅读☞jmeter5.1分布式压

点击阅读☞性能测试案例:redis获取不到连接池,Timeout waiting for idle object

点击阅读☞性能测试案例:tps波动频繁

点击阅读☞性能测试案例:一个频繁fgc问题

点击阅读☞性能测试案例:获取不到redis连接池

点击阅读☞性能测试案例:数据库cpu高导致响应时间长


目前10000+人已关注

       

       


星标|在看|留言|转发分享,铁粉


文章转载自全栈测试笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论