返回顶部
首页 > 资讯 > 数据库 >怎么使用MySQL中的参数binlog_row_image
  • 378
分享到

怎么使用MySQL中的参数binlog_row_image

2024-04-02 19:04:59 378人浏览 薄情痞子
摘要

这篇文章主要介绍“怎么使用Mysql中的参数binlog_row_image”,在日常操作中,相信很多人在怎么使用mysql中的参数binlog_row_image问题上存在疑惑,小编查阅了各式资料,整理出

这篇文章主要介绍“怎么使用Mysql中的参数binlog_row_image”,在日常操作中,相信很多人在怎么使用mysql中的参数binlog_row_image问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Mysql中的参数binlog_row_image”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、设置过程

插入前先调用TABLE::mark_columns_per_binlog_row_image函数
函数中有image的详细设置


void TABLE::mark_columns_per_binlog_row_image()
{
  DBUG_ENTER("mark_columns_per_binlog_row_image");
  DBUG_ASSERT(read_set->bitmap);
  DBUG_ASSERT(write_set->bitmap);
  
  if ((mysql_bin_log.is_open() && in_use &&
       in_use->is_current_stmt_binlog_fORMat_row() &&
       !ha_check_storage_engine_flag(s->db_type(), HTON_NO_BINLOG_ROW_OPT)))
  {
    THD *thd= current_thd;
    
    if (s->primary_key >= MAX_KEY)
      bitmap_set_all(read_set);
    switch (thd->variables.binlog_row_image)
    {
      case BINLOG_ROW_IMAGE_FULL:
        if (s->primary_key < MAX_KEY)
          bitmap_set_all(read_set); //记录全部字段
        bitmap_set_all(write_set); //记录全部字段,前面write_set应该只是记录了 修改了哪些字段   位图 初始化初始4字节
        break;
      case BINLOG_ROW_IMAGE_NOBLOB:
        
        for (Field **ptr=field ; *ptr ; ptr++)
        {
          Field *my_field= *ptr;
          
          if ((s->primary_key < MAX_KEY) && 
              ((my_field->flags & PRI_KEY_FLAG) || 
              (my_field->type() != MYSQL_TYPE_BLOB)))
            bitmap_set_bit(read_set, my_field->field_index);
          if (my_field->type() != MYSQL_TYPE_BLOB)
            bitmap_set_bit(write_set, my_field->field_index);
        }
        break;
      case BINLOG_ROW_IMAGE_MINIMAL:
        
        if (s->primary_key < MAX_KEY)
          mark_columns_used_by_index_no_reset(s->primary_key, read_set); //只记录主键或者非空唯一键的 字段
        break;
      default: 
        DBUG_ASSERT(FALSE);
    }
    file->column_bitmaps_signal();
  }
  DBUG_VOID_RETURN;
}

二、过滤过程

THD::binlog_prepare_row_images还会准备image

binlog_log_row 上层接口 记录 binlog
-> Write_rows_log_event::binlog_row_logging_function 
  -> THD::binlog_write_row(THD::binlog_delete_row)
     ->THD::binlog_prepare_row_images 准备前印象位图 如果没有主键/非空唯一键 则不考虑记录全字段
       pack_row 通过位图准备好行
       THD::binlog_prepare_pending_rows_event 
         -> 判断是否需要新建一个EVENT 大约8K左右,
            如果新建 新建后写event到 log buffer
         ->否则在当前event中写入   
       add_row_data(row_data, len); 将数据加入到EVENT

到此,关于“怎么使用MySQL中的参数binlog_row_image”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么使用MySQL中的参数binlog_row_image

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

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

猜你喜欢
  • 怎么使用MySQL中的参数binlog_row_image
    这篇文章主要介绍“怎么使用MySQL中的参数binlog_row_image”,在日常操作中,相信很多人在怎么使用MySQL中的参数binlog_row_image问题上存在疑惑,小编查阅了各式资料,整理出...
    99+
    2024-04-02
  • 怎么使用MySQL中的character_set_server影响参数
    这篇文章主要讲解了“怎么使用MySQL中的character_set_server影响参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用MySQL中...
    99+
    2024-04-02
  • 怎么使用MySQL 5.6参数extra_port
    本篇内容主要讲解“怎么使用MySQL 5.6参数extra_port”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用MySQL 5.6参数extra_po...
    99+
    2024-04-02
  • oracle中的arallel参数怎么使用
    在Oracle中,Parallel参数用来控制并行查询的执行方式。以下是一些常见的使用方法:1. 对表或索引对象启用并行化:可以使用...
    99+
    2023-08-08
    oracle arallel
  • MYSQL的secure_file_priv参数怎么用?
    MYSQL的secure_file_priv参数怎么用?针对这个问题,今天小编总结这篇有关secure_file_priv的文章,希望能帮助朋友了解secure_file_priv这个新特性。secure-...
    99+
    2024-04-02
  • C++中怎么使用数组参数
    这期内容当中小编将会给大家带来有关C++中怎么使用数组参数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。对于经验丰富的编程人员来说,C++编程语言应该是他们经常使用于程序开发的一种实用性语言。那么,在C+...
    99+
    2023-06-17
  • pytorch中BatchNorm2d函数的参数怎么使用
    本篇内容主要讲解“pytorch中BatchNorm2d函数的参数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pytorch中BatchNorm2d函数的参数怎么使用”吧!BN原理、作...
    99+
    2023-07-04
  • java中transaction参数怎么使用
    在Java中,可以使用`@Transactional`注解来指定事务的属性。`@Transactional`注解可以应用于类级别或方...
    99+
    2023-09-23
    java
  • Python中OrderByDesc参数怎么使用
    在Python中,OrderByDesc参数通常用于对列表或元组等可迭代对象进行倒序排序。使用OrderByDesc参数时,需要先将...
    99+
    2023-09-21
    Python
  • JavaScript中window.open()参数怎么使用
    JavaScript中的window.open()方法用于打开一个新的浏览器窗口或标签页。它可以接受多个参数,包括URL、窗口名称、...
    99+
    2023-09-15
    JavaScript
  • apache中RewriteRule参数怎么使用
    在Apache中,RewriteRule指令用于重写URL。它的基本语法如下:RewriteRule pattern target ...
    99+
    2023-08-29
    apache
  • C#中怎么使用命名参数
    在C#中使用命名参数可以通过指定参数的名称来传递参数值,而不必按照参数定义的顺序传递参数值。这样可以提高代码的可读性和易用性。 下面...
    99+
    2024-03-07
    C#
  • 怎么在python中使用带参数的__init__
    这期内容当中小编将会给大家带来有关怎么在python中使用带参数的__init__,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语...
    99+
    2023-06-14
  • python的函数参数怎么使用
    本篇内容主要讲解“python的函数参数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python的函数参数怎么使用”吧!位置参数这是一个求等差数列和的函数,使用必需要传入一个参数n,这...
    99+
    2023-06-22
  • MySQL触发器中参数的使用方法
    MySQL触发器是一种在数据库管理系统中用于监控特定表的操作,并根据预定义的条件执行相应操作的特殊程序。在创建MySQL触发器时,我们可以使用参数来灵活地传递数据和信息,让触发器更具通...
    99+
    2024-04-02
  • 怎么使用OUT参数
    本篇内容介绍了“怎么使用OUT参数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我创建了下面这个过程:CR...
    99+
    2024-04-02
  • MySQL binlog_ignore_db 参数的具体使用
    前言:  经过前面文章学习,我们知道 binlog 会记录数据库所有执行的 DDL 和 DML 语句(除了数据查询语句select、show等)。注意默认情况下会记录所有库的操作,那么如果我们有另类需求,比...
    99+
    2022-05-10
    MySQL binlog参数 MySQL binlog MySQL binlog_ignore_db
  • MySQL参数如何使用
    这篇文章将为大家详细讲解有关MySQL参数如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  MySQL参数怎么使用  createtable的时候,...
    99+
    2024-04-02
  • MySQL中怎么配置 my.cnf参数
    本篇文章给大家分享的是有关MySQL中怎么配置 my.cnf参数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。# 以下选项会被MySQL客户端...
    99+
    2024-04-02
  • 怎么理解MySQL中innodb_file_per_table参数
    这篇文章将为大家详细讲解有关怎么理解MySQL中innodb_file_per_table参数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作