iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL:Innodb:innodb_flush_log_at_trx_commit参数影响的位置
  • 528
分享到

MySQL:Innodb:innodb_flush_log_at_trx_commit参数影响的位置

2024-04-02 19:04:59 528人浏览 独家记忆
摘要

源码5.7.22 影响阶段:Mysql_BIN_LOG::ordered_commit 的flush阶段 一、影响的函数 innobase_flush_logs函数,函数如下其


  • 源码5.7.22

  • 影响阶段:Mysql_BIN_LOG::ordered_commit 的flush阶段


一、影响的函数

innobase_flush_logs函数,函数如下其实注释也写得很清楚了。binlog_group_flush 参数为1。


staticboolinnobase_flush_logs(
    handlerton* hton,    bool        binlog_group_flush){
    DBUG_ENTER("innobase_flush_logs");
    DBUG_ASSERT(hton == innodb_hton_ptr);    if (srv_read_only_mode) {
        DBUG_RETURN(false);
    }    
    if (binlog_group_flush && thd_flush_log_at_trx_commit(NULL) == 0) {        
        DBUG_RETURN(false);
    }    
    log_buffer_flush_to_disk(!binlog_group_flush
                 || thd_flush_log_at_trx_commit(NULL) == 1); 
    DBUG_RETURN(false);
}

二、可能的组合

  • innodb_flush_log_at_trx_commit参数为 0
    binlog_group_flush && thd_flush_log_at_trx_commit(NULL) == 0 条件成立,因此直接return了,那么这种情况下log_buffer_flush_to_disk函数不会调用,因此不会做redo刷盘。依赖master线程

  • innodb_flush_log_at_trx_commit参数为 1
    !binlog_group_flush|| thd_flush_log_at_trx_commit(NULL) == 1 返回为1即为True,因此调用log_buffer_flush_to_disk(True),因此需要做redo刷盘,也要做sync。

  • innodb_flush_log_at_trx_commit参数为 2
    !binlog_group_flush|| thd_flush_log_at_trx_commit(NULL) == 1 返回为0即为Flase,因此调用
    log_buffer_flush_to_disk(Flase),因此需要做redo刷盘,不做sync。依赖OS的刷盘机制。

三、调用栈帧


#0  innobase_flush_logs (hton=0x2e9edd0, binlog_group_flush=true) at /root/mysql5.7.14/percona-server-5.7.14-7/storage/innobase/handler/ha_innodb.cc:4385#1  0x0000000000f65893 in flush_handlerton (thd=0x0, plugin=0x7ffff01558e8, arg=0x7ffff0155944) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/handler.cc:2606#2  0x00000000015d7716 in plugin_foreach_with_mask (thd=0x0, func=0xf65835 <flush_handlerton(THD*, plugin_ref, void*)>, type=1, state_mask=4294967287, 
    arg=0x7ffff0155944) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/sql_plugin.cc:2318#3  0x0000000000f658ef in ha_flush_logs (db_type=0x0, binlog_group_flush=true) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/handler.cc:2617#4  0x000000000185733D in MYSQL_BIN_LOG::process_flush_stage_queue (this=0x2e01c80, total_bytes_var=0x7ffff0155a88, rotate_var=0x7ffff0155a87, 
    out_queue_var=0x7ffff0155a78) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/binlog.cc:8541#5  0x000000000185899f in MYSQL_BIN_LOG::ordered_commit (this=0x2e01c80, thd=0x7fff2c000b70, all=false, skip_commit=false)
    at /root/mysql5.7.14/percona-server-5.7.14-7/sql/binlog.cc:9189#6  0x000000000185700c in MYSQL_BIN_LOG::commit (this=0x2e01c80, thd=0x7fff2c000b70, all=false) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/binlog.cc:8440#7  0x0000000000f63df8 in ha_commit_trans (thd=0x7fff2c000b70, all=false, ignore_global_read_lock=false)
    at /root/mysql5.7.14/percona-server-5.7.14-7/sql/handler.cc:1818#8  0x00000000016b3e5d in trans_commit_stmt (thd=0x7fff2c000b70) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/transaction.cc:458#9  0x00000000015ac677 in mysql_execute_command (thd=0x7fff2c000b70, first_level=true) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/sql_parse.cc:5239#10 0x00000000015adcd6 in mysql_parse (thd=0x7fff2c000b70, parser_state=0x7ffff0158600) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/sql_parse.cc:5836#11 0x00000000015a1b95 in dispatch_command (thd=0x7fff2c000b70, com_data=0x7ffff0158d70, command=COM_QUERY)
    at /root/mysql5.7.14/percona-server-5.7.14-7/sql/sql_parse.cc:1447#12 0x00000000015a09c6 in do_command (thd=0x7fff2c000b70) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/sql_parse.cc:1010#13 0x00000000016e29d0 in handle_connection (arg=0x3803f30) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/conn_handler/connection_handler_per_thread.cc:312#14 0x0000000001d7b4b0 in pfs_spawn_thread (arg=0x3810b80) at /root/mysql5.7.14/percona-server-5.7.14-7/storage/perfschema/pfs.cc:2188#15 0x0000003f74807aa1 in start_thread () from /lib64/libpthread.so.0#16 0x0000003f740e8bcd in clone () from /lib64/libc.so.6

作者微信:gaopp_22389860


您可能感兴趣的文档:

--结束END--

本文标题: MySQL:Innodb:innodb_flush_log_at_trx_commit参数影响的位置

本文链接: https://www.lsjlt.com/news/49508.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL:Innodb:innodb_flush_log_at_trx_commit参数影响的位置
    源码5.7.22 影响阶段:MYSQL_BIN_LOG::ordered_commit 的flush阶段 一、影响的函数 innobase_flush_logs函数,函数如下其...
    99+
    2022-10-18
  • 影响MySQL性能的配置参数
      本文将介绍MySQL参数的五大类设置,平时我们一般都很少碰它们,在进行MySQL性能调优和故障诊断时这些参数还是非常有用的。   (一)连接   连接通常来自Web服务器,下面列出了一些与连接有关的参数,以及该如何设置它们。   1、m...
    99+
    2015-12-16
    影响MySQL性能的配置参数 数据库入门 数据库基础教程 数据库 mysql
  • Python中的函数参数(位置参数、默认参数、可变参数)
    目录一、位置参数二、默认参数三、可变参数四、关键字参数五、命名关键字参数六、各种参数之间的组合函数的参数:Python中函数定义非常简单,由于函数参数的存在,使函数变得非常灵活应用广...
    99+
    2022-11-12
  • 怎么使用MySQL中的character_set_server影响参数
    这篇文章主要讲解了“怎么使用MySQL中的character_set_server影响参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用MySQL中...
    99+
    2022-10-18
  • 对MySQL性能影响关系紧密的配置参数有哪些
    这篇文章主要介绍对MySQL性能影响关系紧密的配置参数有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! (一)连接 连接通常来自Web 服务器,下面列出了一些与连接有关的参数...
    99+
    2022-10-19
  • 修改db_files参数,是否影响业务?
    1、环境描述:Oracle 10g RAC ,在线修改db_files参数 2、操作如下 SQL> show parameter db_files NAME ...
    99+
    2022-10-18
  • 分析MySQL的slave_skip_errors参数对MGR可用性的影响
    这篇文章主要介绍“分析MySQL的slave_skip_errors参数对MGR可用性的影响”,在日常操作中,相信很多人在分析MySQL的slave_skip_errors参数对MGR可用性的影响问题上存在...
    99+
    2022-10-18
  • JavaScript中为什么命名参数比位置参数
    这篇文章将为大家详细讲解有关JavaScript中为什么命名参数比位置参数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 什么是位置参数你一定很熟悉位置...
    99+
    2022-10-19
  • PostgreSQL中checkpoint_completion_target参数对checkpoint调度的影响是什么
    这篇文章主要介绍“PostgreSQL中checkpoint_completion_target参数对checkpoint调度的影响是什么”,在日常操作中,相信很多人在PostgreSQL中checkpoi...
    99+
    2022-10-18
  • 云服务器哪些参数影响网站速度
    云服务器所处的位置,云服务器的位置对访问速度是有影响的,如在国外访问国内的服务器,访问的速度肯定是有延迟的,反之相反。云服务器的硬件设施制约访问速度,服务器主机的CPU的核数越多,速度就会越快;硬盘越大,速度也会越快;内存越大,速度会越快;...
    99+
    2022-10-11
  • Linux下shell位置参数怎么用
    这篇文章将为大家详细讲解有关Linux下shell位置参数怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、引言  之前我们一直没有涉及程序接收和处理命令行选项以及参数的能力。本章节将讲述允许程序访...
    99+
    2023-06-28
  • Oracle RAC修改参数文件位置
    目的: 将参数文件原位置+DATA/cjcdb/spfilecjcdb.ora修改到+DATA/cjcdb/spfile/spfilecjcdb.ora 步骤如下: 一:临时位置生成pfile ...
    99+
    2022-10-18
  • REMOTE_LOGIN_PASSWORDFILE参数的三种取值对系统有哪些影响
    这篇文章主要讲解了“REMOTE_LOGIN_PASSWORDFILE参数的三种取值对系统有哪些影响”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“REMOT...
    99+
    2022-10-18
  • Shell脚本位置参数的具体使用
    目录1.访问命令行2 确定参数个数3 shift-访问多个参数4 简单应用5 在Shell函数中使用位置参数6 批量处理位置参数1.访问命令行 Shell提供了一组名为位置参数的变了,其中包含了命令行上的各个单词,这些变...
    99+
    2023-03-23
    Shell脚本位置参数 Shell 位置参数
  • python中位置参数的作用是什么
    今天就跟大家聊聊有关python中位置参数的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究...
    99+
    2023-06-14
  • python函数中如何传递参数位置
    今天就跟大家聊聊有关python函数中如何传递参数位置,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、说明调用函数时,默认按位置顺序将对应的实参传递给形参,将第一个实参分配给第一个...
    99+
    2023-06-15
  • CMS系统php.ini中的一些对性能影响较大的参数应该如何设置
    本篇内容主要讲解“CMS系统php.ini中的一些对性能影响较大的参数应该如何设置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CMS系统php.ini中的一些对性能影响较大的参数应该如何设置”...
    99+
    2023-06-17
  • Shell脚本位置参数如何使用
    这篇文章主要介绍“Shell脚本位置参数如何使用”,在日常操作中,相信很多人在Shell脚本位置参数如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell脚本位置参数如何使用”的疑惑有所帮助!接下来...
    99+
    2023-07-05
  • 云服务器有哪些参数会影响网站速度
    影响云服务器网站速度的参数有:1.云服务器硬件配置,硬件配置条件越好,速度越快;2.云服务器带宽,带宽越大,速度越快;3.云服务器地理位置,骨干节点速度快;4.网站内部建设,网站代码要规范;具体分析如下:云服务器硬件配置云服务器硬件配置包括...
    99+
    2022-10-07
  • Mysql 5.7 Gtid内部学习(七) 总结binlog_gtid_simple_recovery参数带来的影响
    简书地址: http://www.jianshu.com/p/c9888d6447c8 想了想还是专门开了一节来总结这个问题 5.7.6以下中默认 simplified_binlog_gt...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作