首页 > 数据库 > 数据库开发技术 > 再来一道适合面试用的MySQL综合题
上次直播后,大家反馈,喜欢听这种带多个知识点的综合面试题。
《MySQL进阶单元课》今晚准备讲的第六单元,抽个题目出来给同学们预习用(单元大纲附文末)
假设场景在MySQL8.0的默认配置下,初始化一个空示例和空库,建一个serv表,有31个字段,除了主键id外, a1~a29定义为varchar(255), a30定义为text, 初始化1行数据。
CREATE TABLE serv( id int(11) NOT NULL AUTO_INCREMENT,a1 varchar(255) DEFAULT NULL,a2 varchar(255) DEFAULT NULL,a3 varchar(255) DEFAULT NULL,a4 varchar(255) DEFAULT NULL,a5 varchar(255) DEFAULT NULL,a6 varchar(255) DEFAULT NULL,a7 varchar(255) DEFAULT NULL,a8 varchar(255) DEFAULT NULL,a9 varchar(255) DEFAULT NULL,a10 varchar(255) DEFAULT NULL,a11 varchar(255) DEFAULT NULL,a12 varchar(255) DEFAULT NULL,a13 varchar(255) DEFAULT NULL,a14 varchar(255) DEFAULT NULL,a15 varchar(255) DEFAULT NULL,a16 varchar(255) DEFAULT NULL,a17 varchar(255) DEFAULT NULL,a18 varchar(255) DEFAULT NULL,a19 varchar(255) DEFAULT NULL,a20 varchar(255) DEFAULT NULL,a21 varchar(255) DEFAULT NULL,a22 varchar(255) DEFAULT NULL,a23 varchar(255) DEFAULT NULL,a24 varchar(255) DEFAULT NULL,a25 varchar(255) DEFAULT NULL,a26 varchar(255) DEFAULT NULL,a27 varchar(255) DEFAULT NULL,a28 varchar(255) DEFAULT NULL,a29 varchar(255) DEFAULT NULL,a30 text,primary key(id)) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into serv(id) values(null);
在可重复读隔离级别(RR)下,分别执行以下两个场景;
场景1:
T0: session1start transaction with consistent snapshotT1: session2:loop 5000 times:update serv set a1=repeat('a', 255), a2=repeat('a',255)...a29=repeat('a',255);update serv set a1=repeat('b', 255), a2=repeat('b',255)...a29=repeat('b',255);end loop;
说明:session1 不断开,session2将这一行修改1万次,每次都修改a1~a29这29列的值。
场景2:
T0: session1start transaction with consistent snapshotT1: session2:loop 5000 times:update serv set a30=repeat('a', 29*255);update serv set a30=repeat('b', 29*255);end loop
说明:session1 不断开,session2将这一行修改1万次,每次都修改a30的值,填充数据长度29*255。
问,上述两个场景在执行完session2的操作后,在磁盘文件大小上有什么区别?新公众号没法评论,有答案想讨论胰腺的同学可以加微或到微博留言交流。下一篇发结论。
附:
|
MySQL进阶单元课,第六单元《InnoDB线程和IO模型》 大纲 1. 涉及的基础概念 2. 各线程功能介绍 3. 对性能(CPU、IO)的影响 4. 如何用参数控制线程行为 5. 应用场景/实践建议 了解单元课+V: linxiaobin3306 |
原文作者:丁奇3306;如有侵权,请联系管理员删除。