mysql insert执行过程_MySQL · 源码分析 · 一条insert语句的执行过程
本文只分析了insert語句執(zhí)行的主路徑,和路徑上部分關(guān)鍵函數(shù),很多細(xì)節(jié)沒有深入,留給讀者繼續(xù)分析
create table t1(id int);
insert into t1 values(1)
略過建立連接,從 mysql_parse() 開始分析
void mysql_parse(THD *thd, char *rawbuf, uint length,
Parser_state *parser_state)
{
/* ...... */
/* 檢查query_cache,如果結(jié)果存在于cache中,直接返回 */
if (query_cache_send_result_to_client(thd, rawbuf, length) <= 0)
{
LEX *lex= thd->lex;
/* 解析語句 */
bool err= parse_sql(thd, parser_state, NULL);
/* 整理語句格式,記錄 general log */
/* ...... */
/* 執(zhí)行語句 */
error= mysql_execute_command(thd);
/* 提交或回滾沒結(jié)束的事務(wù)(事務(wù)可能在mysql_execute_command中提交,用trx_end_by_hint標(biāo)記事務(wù)是否已經(jīng)提交) */
if (!thd->trx_end_by_hint)
{
if (!error && lex->ci_on_success)
trans_commit(thd);
if (error && lex->rb_on_fail)
trans_rollback(thd);
}
進(jìn)
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的mysql insert执行过程_MySQL · 源码分析 · 一条insert语句的执行过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wordpress php7 mysql
- 下一篇: linux cmake编译源码,linu