数据库事务Event的生成和写入流程是什么

发布时间:2021-11-08 11:01:23 作者:iii
来源:亿速云 阅读:164

这篇文章主要讲解了“数据库事务Event的生成和写入流程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库事务Event的生成和写入流程是什么”吧!

一、Query_log_event栈帧:

初始化

#0  Query_log_event::Query_log_event (this=0x7fffec0f30d0, thd_arg=0x7ffe7c000b70, query_arg=0x22e0614 "BEGIN", query_length=5, using_trans=true, immediate=false, 
    suppress_use=true, errcode=0, ignore_cmd_internals=true, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/log_event.cc:4036
#1  0x000000000188cc49 in binlog_start_trans_and_stmt (thd=0x7ffe7c000b70, start_event=0x7fffec0f4290)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/binlog.cc:10387
#2  0x000000000188ce88 in THD::binlog_write_table_map (this=0x7ffe7c000b70, table=0x7ffe7c9b8390, is_transactional=true, binlog_rows_query=false)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/binlog.cc:10430
#3  0x0000000000f8fbe7 in write_locked_table_maps (thd=0x7ffe7c000b70) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/handler.cc:8258
#4  0x0000000000f8fe2b in binlog_log_row (table=0x7ffe7c9b8390, before_record=0x7ffe7c9b77e0 "\375\001", after_record=0x0, 
    log_func=0xf95805 <Delete_rows_log_event::binlog_row_logging_function(THD*, TABLE*, bool, uchar const*, uchar const*)>)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/handler.cc:8327
#5  0x0000000000f90f90 in handler::ha_delete_row (this=0x7ffe7c9bb110, buf=0x7ffe7c9b77e0 "\375\001")
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/handler.cc:8549
#6  0x00000000017f41f7 in Sql_cmd_delete::mysql_delete (this=0x7ffe7c006c60, thd=0x7ffe7c000b70, limit=3)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_delete.cc:468
#7  0x00000000017f7180 in Sql_cmd_delete::execute (this=0x7ffe7c006c60, thd=0x7ffe7c000b70) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_delete.cc:1386
#8  0x00000000015cc8e9 in mysql_execute_command (thd=0x7ffe7c000b70, first_level=true) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:3756
#9  0x00000000015d30c6 in mysql_parse (thd=0x7ffe7c000b70, parser_state=0x7fffec0f6600) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:5901
#10 0x00000000015c6c5a in dispatch_command (thd=0x7ffe7c000b70, com_data=0x7fffec0f6d70, command=COM_QUERY)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:1490
#11 0x00000000015c59e7 in do_command (thd=0x7ffe7c000b70) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:1021
#12 0x000000000170e660 in handle_connection (arg=0x67de900) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/conn_handler/connection_handler_per_thread.cc:312
#13 0x0000000001945620 in pfs_spawn_thread (arg=0x675f7e0) at /root/mysqlall/percona-server-locks-detail-5.7.22/storage/perfschema/pfs.cc:2190
#14 0x00007ffff7bc6aa1 in start_thread () from /lib64/libpth

二、Table_map_log_event栈帧:

初始化

#0  Table_map_log_event::Table_map_log_event (this=0x7fffec0f41f0, thd_arg=0x7ffe7c000b70, tbl=0x7ffe7c9b8390, tid=..., using_trans=true)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/log_event.cc:12045
#1  0x000000000188ce68 in THD::binlog_write_table_map (this=0x7ffe7c000b70, table=0x7ffe7c9b8390, is_transactional=true, binlog_rows_query=false)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/binlog.cc:10428
#2  0x0000000000f8fbe7 in write_locked_table_maps (thd=0x7ffe7c000b70) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/handler.cc:8258
#3  0x0000000000f8fe2b in binlog_log_row (table=0x7ffe7c9b8390, before_record=0x7ffe7c9b77e0 "\375\001", after_record=0x0, 
    log_func=0xf95805 <Delete_rows_log_event::binlog_row_logging_function(THD*, TABLE*, bool, uchar const*, uchar const*)>)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/handler.cc:8327
#4  0x0000000000f90f90 in handler::ha_delete_row (this=0x7ffe7c9bb110, buf=0x7ffe7c9b77e0 "\375\001")
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/handler.cc:8549
#5  0x00000000017f41f7 in Sql_cmd_delete::mysql_delete (this=0x7ffe7c006c60, thd=0x7ffe7c000b70, limit=3)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_delete.cc:468
#6  0x00000000017f7180 in Sql_cmd_delete::execute (this=0x7ffe7c006c60, thd=0x7ffe7c000b70) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_delete.cc:1386
#7  0x00000000015cc8e9 in mysql_execute_command (thd=0x7ffe7c000b70, first_level=true) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:3756
#8  0x00000000015d30c6 in mysql_parse (thd=0x7ffe7c000b70, parser_state=0x7fffec0f6600) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:5901
#9  0x00000000015c6c5a in dispatch_command (thd=0x7ffe7c000b70, com_data=0x7fffec0f6d70, command=COM_QUERY)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:1490
#10 0x00000000015c59e7 in do_command (thd=0x7ffe7c000b70) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:1021
#11 0x000000000170e660 in handle_connection (arg=0x67de900) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/conn_handler/connection_handler_per_thread.cc:312
#12 0x0000000001945620 in pfs_spawn_thread (arg=0x675f7e0) at /root/mysqlall/percona-server-locks-detail-5.7.22/storage/perfschema/pfs.cc:2190
#13 0x00007ffff7bc6aa1 in start_thread () from /lib64/libpthread.so.0
#14 0x00007ffff6719bcd in clone () from /lib64/libc.so.6

三、Delete_rows_log_event

Delete_rows_log_event::Delete_rows_log_event

初始化Event:

#0  Delete_rows_log_event::Delete_rows_log_event (this=0x7ffe7cdc7a60, thd_arg=0x7ffe7c000b70, tbl_arg=0x7ffe7c9b8390, tid=..., is_transactional=true, 
    extra_row_info=0x0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/log_event.cc:13086
#1  0x000000000189687f in THD::binlog_prepare_pending_rows_event<Delete_rows_log_event> (this=0x7ffe7c000b70, table=0x7ffe7c9b8390, serv_id=953340, needed=5, 
    is_transactional=true, hint=0x0, extra_row_info=0x0) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/binlog.cc:11688
#2  0x000000000189003b in THD::binlog_delete_row (this=0x7ffe7c000b70, table=0x7ffe7c9b8390, is_trans=true, record=0x7ffe7c9b77e0 "\375\001", extra_row_info=0x0)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/binlog.cc:11963
#3  0x0000000000f95844 in Delete_rows_log_event::binlog_row_logging_function (thd=0x7ffe7c000b70, table=0x7ffe7c9b8390, is_transactional=true, 
    before_record=0x7ffe7c9b77e0 "\375\001", after_record=0x0) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/log_event.h:3722
#4  0x0000000000f8fe9e in binlog_log_row (table=0x7ffe7c9b8390, before_record=0x7ffe7c9b77e0 "\375\001", after_record=0x0, 
    log_func=0xf95805 <Delete_rows_log_event::binlog_row_logging_function(THD*, TABLE*, bool, uchar const*, uchar const*)>)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/handler.cc:8340
#5  0x0000000000f90f90 in handler::ha_delete_row (this=0x7ffe7c9bb110, buf=0x7ffe7c9b77e0 "\375\001")
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/handler.cc:8549
#6  0x00000000017f41f7 in Sql_cmd_delete::mysql_delete (this=0x7ffe7c006c60, thd=0x7ffe7c000b70, limit=3)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_delete.cc:468
#7  0x00000000017f7180 in Sql_cmd_delete::execute (this=0x7ffe7c006c60, thd=0x7ffe7c000b70) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_delete.cc:1386
#8  0x00000000015cc8e9 in mysql_execute_command (thd=0x7ffe7c000b70, first_level=true) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:3756
#9  0x00000000015d30c6 in mysql_parse (thd=0x7ffe7c000b70, parser_state=0x7fffec0f6600) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:5901
#10 0x00000000015c6c5a in dispatch_command (thd=0x7ffe7c000b70, com_data=0x7fffec0f6d70, command=COM_QUERY)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:1490
#11 0x00000000015c59e7 in do_command (thd=0x7ffe7c000b70) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:1021
#12 0x000000000170e660 in handle_connection (arg=0x67de900) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/conn_handler/connection_handler_per_thread.cc:312
#13 0x0000000001945620 in pfs_spawn_thread (arg=0x675f7e0) at /root/mysqlall/percona-server-locks-detail-5.7.22/storage/perfschema/pfs.cc:2190
#14 0x00007ffff7bc6aa1 in start_thread () from /lib64/libpthread.so.0
#15 0x00007ffff6719bcd in clone () from /lib64/libc.so.6

数据加入Rows_log_event::do_add_row_data 将本次循环的加入到event中

#0  Rows_log_event::do_add_row_data (this=0x7ffe7cdc7a60, row_data=0x7ffe7c9b78e0 "\376\001", length=5)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/log_event.cc:9676
#1  0x00000000018929ad in Rows_log_event::add_row_data (this=0x7ffe7cdc7a60, data=0x7ffe7c9b78e0 "\376\001", length=5)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/log_event.h:3067
#2  0x0000000001890073 in THD::binlog_delete_row (this=0x7ffe7c000b70, table=0x7ffe7c9b8390, is_trans=true, record=0x7ffe7c9b77e0 "\375\001", extra_row_info=0x0)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/binlog.cc:11968
#3  0x0000000000f95844 in Delete_rows_log_event::binlog_row_logging_function (thd=0x7ffe7c000b70, table=0x7ffe7c9b8390, is_transactional=true, 
    before_record=0x7ffe7c9b77e0 "\375\001", after_record=0x0) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/log_event.h:3722
#4  0x0000000000f8fe9e in binlog_log_row (table=0x7ffe7c9b8390, before_record=0x7ffe7c9b77e0 "\375\001", after_record=0x0, 
    log_func=0xf95805 <Delete_rows_log_event::binlog_row_logging_function(THD*, TABLE*, bool, uchar const*, uchar const*)>)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/handler.cc:8340      
#5  0x0000000000f90f90 in handler::ha_delete_row (this=0x7ffe7c9bb110, buf=0x7ffe7c9b77e0 "\375\001")
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/handler.cc:8549
#6  0x00000000017f41f7 in Sql_cmd_delete::mysql_delete (this=0x7ffe7c006c60, thd=0x7ffe7c000b70, limit=3)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_delete.cc:468
#7  0x00000000017f7180 in Sql_cmd_delete::execute (this=0x7ffe7c006c60, thd=0x7ffe7c000b70) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_delete.cc:1386
#8  0x00000000015cc8e9 in mysql_execute_command (thd=0x7ffe7c000b70, first_level=true) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:3756
#9  0x00000000015d30c6 in mysql_parse (thd=0x7ffe7c000b70, parser_state=0x7fffec0f6600) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:5901
#10 0x00000000015c6c5a in dispatch_command (thd=0x7ffe7c000b70, com_data=0x7fffec0f6d70, command=COM_QUERY)
    at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:1490
#11 0x00000000015c59e7 in do_command (thd=0x7ffe7c000b70) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/sql_parse.cc:1021
#12 0x000000000170e660 in handle_connection (arg=0x67de900) at /root/mysqlall/percona-server-locks-detail-5.7.22/sql/conn_handler/connection_handler_per_thread.cc:312
#13 0x0000000001945620 in pfs_spawn_thread (arg=0x675f7e0) at /root/mysqlall/percona-server-locks-detail-5.7.22/storage/perfschema/pfs.cc:2190
#14 0x00007ffff7bc6aa1 in start_thread () from /lib64/libpthread.so.0
#15 0x00007ffff6719bcd in clone () from /lib64/libc.so.6

感谢各位的阅读,以上就是“数据库事务Event的生成和写入流程是什么”的内容了,经过本文的学习后,相信大家对数据库事务Event的生成和写入流程是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. hbase数据写入流程深度解析
  2. ipa文件生成流程

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

event 数据库

上一篇:Shell怎么实现自动化管理账号脚本

下一篇:如何理解客户端与服务器cookie

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》