MySQL:一个简单insert语句的大概流程

MySQL:一个简单insert语句的大概流程,第1张

简单记录,可能有误,主要记录重要的接口以备后用。

我建了一个简单的表,插入一个简单的数据。

主要跟踪这个简单的插入语句在插入过程的经历。主要集中在插入流程和提交流程,不包含前期的其他阶段。

下面是这个语句经历的所有的阶段:

主要集中在:

两个阶段

对于 begindelete from t1 where id=2;insert into t1 values(2) 的会调用row_ins_clust_index_entry_by_modify函数直接去掉del flag,避免额外开销(t1(id int primary key))

可以看到整个语句的流程大概为

这只是大概流程其中很多很多的细节,不过有了入口函数也许好分析一些。

我有点建议:在过程或者程序中不要使用与参数的名字的局部变量,或者参数不应该与要使用的表字段名字想同。你这里使用@ID说明你想声明局部变量ID,在存储过程和函数中应该使用

DECLARE 变量名 类型 [DEFAULT value]的格式,然后SET 变量名=value。

上面SET@ID=ID改为 DECLARE NEWID INT DEFAULT 0SET NEWID=ID以此类推


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8397420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存