日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

mysql 8.0 一条insert语句的具体执行流程分析(二)

發布時間:2023/12/20 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 8.0 一条insert语句的具体执行流程分析(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

繼續上一篇文章:mysql 8.0 一條insert語句的具體執行流程分析(一)_一縷陽光的博客-CSDN博客

由于最近換工作一直在試用期內,在拼命的學習、總結中,因此沒有時間寫文章,今天轉正了騰出來時間繼續寫下一篇文章。mysql 8.0 一條insert語句的具體執行流程分析寫完了write_record部分,下面將會運行到engine層,主要存儲引擎的接口

代碼版本:mysql 8.0.22

編程語言:c++ && c++11 && c++14 && c++17

這里使用MySQL InnoDB存儲引擎,存儲引擎接口涉及多個文件,由于內容過多,分下面幾個部分進行分開描述,代碼是按下面的章節順序執行的。

| > handler::ha_write_row | | > ha_innobase::write_row | | | > row_insert_for_mysql | | | | > row_insert_for_mysql_using_ins_graph | | | | | > trx_start_if_not_started_xa> trx_start_if_not_started_xa_low> trx_start_low | | | | | > row_mysql_convert_row_to_innobase | | | | | > row_ins_step

(1)、ha_write_row : 用于插入一條記錄

int handler::ha_write_row(uchar *buf) {......// 主要是調用這個ha_innobase::write_rowMYSQL_TABLE_IO_WAIT(PSI_TABLE_WRITE_ROW, MAX_KEY, error,{ error = write_row(buf); })return 0; }

(2)、write_row : 在InnoDB database中存儲一行數據,針對這張表對應的handle

int ha_innobase::write_row(uchar *record) {......update_auto_increment(); // 更新自增建.../* Execute insert graph that will result in actual insert. */error = row_insert_for_mysql((byte *)record, m_prebuilt);}

其中里面會更新自增鍵,如果建表語句中有自增列。

(3)、row_insert_for_mysql : 執行insert操作

這個函數比較簡單,直接透傳到下面的函數中了

/** Does an insert for MySQL. @param[in] mysql_rec row in the MySQL format @param[in,out] prebuilt prebuilt struct in MySQL handle @return error code or DB_SUCCESS*/ dberr_t row_insert_for_mysql(const byte *mysql_rec, row_prebuilt_t *prebuilt) {/* For intrinsic tables there a lot of restrictions that can berelaxed including locking of table, transaction handling, etc.Use direct cursor interface for inserting to intrinsic tables. */if (prebuilt->table->is_intrinsic()) {return (row_insert_for_mysql_using_cursor(mysql_rec, prebuilt));} else {return (row_insert_for_mysql_using_ins_graph(mysql_rec, prebuilt));} }

(4)、row_insert_for_mysql_using_ins_graph : 使用graph結構存儲insert的信息

static dberr_t row_insert_for_mysql_using_ins_graph(const byte *mysql_rec,row_prebuilt_t *prebuilt) { ......row_mysql_convert_row_to_innobase(node->row, prebuilt, mysql_rec, &blob_heap);run_again:thr->run_node = node;thr->prev_node = node;row_ins_step(thr); // 向一個table中插入一行... }

(5)、trx_start_if_not_started_xa : 這部分是開啟XA事務

(6)、row_mysql_convert_row_to_innobase : 將一行數據從MySQL格式轉換為innodb格式

(7)、row_ins_step : 向一個table中插入一行

| > row_ins_step | | > row_ins | | | > row_ins_index_entry_step | | | | > row_ins_index_entry> row_ins_clust_index_entry> row_ins_sec_index_multi_value_entry > row_ins_sec_index_entry

(8)、row_ins_step : 向表中插入一行,會調用下面的row_ins

/** Inserts a row to a table. This is a high-level function used in SQLexecution graphs.@return query thread to run next or NULL */ que_thr_t *row_ins_step(que_thr_t *thr) /*!< in: query thread */ {...err = row_ins(node, thr);...return (thr); }

(9)、row_ins : 向表中插入一行

(10)、row_ins_index_entry_step : 向表中插入index

(11)、row_ins_index_entry :

??? (1)、row_ins_clust_index_entry : 聚集索引執行這個分支

??? (2)、row_ins_sec_index_multi_value_entry : 使用二級索引多個value值時,執行這個分支

??? (3)、row_ins_sec_index_entry : 二級索引執行這個分支

本篇文章先寫到這里,下一篇文章主要講述使用二級索引時的執行流程。

題外話:跟公司簽了3年合同,試用期6個月,是不是試用期太長了,國家規定的也是6個月嗎?如果比較清楚這個事,請告知我(zgaoq@163.com),謝謝

總結

以上是生活随笔為你收集整理的mysql 8.0 一条insert语句的具体执行流程分析(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久夜夜夜精品国产 | 免费毛片在线播放免费 | 免费国产一区二区 | 亚洲福利网 | 亚洲理论在线观看 | 羞羞涩涩网站 | 亚洲一区二区国产 | 日韩一级片一区二区 | 在线播放黄色网址 | 小辣椒导航 | 老熟妇仑乱一区二区视频 | 国产乱国产乱老熟 | 激情自拍偷拍 | 在线视频观看一区 | 高潮毛片7777777毛片 | 久久天 | 三上悠亚在线一区二区 | 亚洲精品99久久久久中文字幕 | 日日射日日干 | 老司机成人网 | 久久片| 国产福利91精品一区二区三区 | 亚洲m码 欧洲s码sss222 | 欧美成人影院 | 尤物videos另类xxxx | 午夜视频在线免费看 | 波多野结衣高清电影 | 国产乱淫av片杨贵妃 | 成人福利视频导航 | 成片免费观看视频大全 | 国产在线一区二区三区四区 | 中国丰满人妻videoshd | 激情中文字幕 | av片手机在线观看 | h视频在线免费看 | 熟妇人妻久久中文字幕 | 中文字幕一区二区三三 | 久久婷色| 一个人在线观看www软件 | 嫩草影院av | 黄色一级片免费看 | 日本免费一二区 | 亚洲欧美日韩另类在线 | 日本黄色xxxxx | 13日本xxxxxⅹxxx20 | av片大全 | 亚洲成人一二区 | 成人黄色短片 | 天天综合91| 天堂影视av| 黄色一级网址 | 在线观看免费观看 | 韩国性猛交╳xxx乱大交 | 三级黄色网络 | 亚洲人人爱 | 亚洲欧美一区二区三区情侣bbw | 麻豆亚洲av成人无码久久精品 | 高清免费毛片 | 天天爱夜夜操 | 先锋影音av资源在线观看 | 大桥未久av在线播放 | 欧美一区二区久久 | 奇米久久 | 91毛片观看 | 亚洲最新偷拍 | 自拍偷拍色图 | 日本高清www免费视频 | 69亚洲| 日韩精品久久久久 | 日韩亚洲精品视频 | 丰满岳乱妇国产精品一区 | 国产精品99久久久久久久久 | 小镇姑娘高清播放视频 | aa一级片| 国产探花视频在线观看 | 国产成人精品无码免费看81 | 国产精品成人免费精品自在线观看 | 欧美日韩成人精品 | a极黄色片 | 成人免费版欧美州 | 免费在线观看成年人视频 | 四虎精品永久在线 | 在线观看网站av | 女人张开双腿让男人捅 | 精品动漫一区二区三区 | 国产免费资源 | 日本a级片视频 | 国产又色又爽又黄的 | 永久看看免费大片 | 精品免费国产一区二区三区 | 奇米网7777 | aaa国产精品 | 69国产| 男生坤坤放进女生坤坤里 | av我不卡| 男男做的视频 | 秋霞国产 | 成年人在线播放 | 熟妇熟女乱妇乱女网站 |