位置: 编程技术 - 正文

MySQL中二进制与重做日志文件的基本概念学习教程(mysql存二进制用哪个字段)

编辑:rootadmin

推荐整理分享MySQL中二进制与重做日志文件的基本概念学习教程(mysql存二进制用哪个字段),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql二进制与或,mysql存二进制用哪个字段,mysql二进制与或,mysql二进制转十进制,mysql二进制转十进制,mysql二进制与或,mysql存储二进制数据,mysql存储二进制数据,内容如对您有帮助,希望把文章链接给更多的朋友!

二进制日志二进制日志记录了所有对数据库执行更改的操作,二进制主要有以下两种作用:

1、恢复(recovery)2、复制(replication)

二进制日志的启动:配置参数log-bin[=name],如果不指定name,则默认二进制日志文件名为主机名,后缀名为二级制日志的序列号,所在路径为数据库所在目录。

以index为后缀的文件为二进制日志的索引文件,用来存储过往生产的二进制日志。

和二进制日志相关的参数:

max_binlog_size、binlog_cache_size、sync_binlog、binlog-do-db、binlog-ignore-db、log-slave-update、binlog_format

max_binlog_size,该参数指定了单个二进制日志文件的最大值,如果超过该值,则产生新的二进制日志文件,后缀名+1,并记录到.index文件,从Mysql5.0开始的默认值为,代表1G。

Mysql5.5的默认值

当使用事务的存储引擎InnoDB时,所有未提交的事务会记录到一个缓存中,等待事务提交时,直接将缓冲中的二进制日志写入二进制日志文件,而该缓冲的大小由binlog_cache_size决定,默认大小为KB,此外,binlog_cache_size是基于回话的,也就是,当一个线程开始一个事务时,mysql会自动分配一个大小为binlog_cache_size的缓存,因此该值得设置需要相当小心,可以通过show global status 查看binlog_cache_use、binlog_cache_disk_use的状态,可以判断当前binlog_cache_size的设置是否合适。

Binlog_cache_size的默认大小为KB

参数sync_binlog=[N]表示每写缓存多少次就同步到磁盘,如果将N设置为1,则表示采用同步写磁盘的方式来写二进制日志,该参数很重要,这个以后还会提到。值得注意的是,在将该参数设置为1时,也应该将innodb_support_xa设为1来解决,这可以确保二进制日志和InnoDB存储引擎数据文件的同步。

参数binlog-do-db和binlog-ignore-db表示需要写入或者忽略写入哪些库的日志,默认值为空,则表示将所有库的日志同步到二进制日志。

Log-slave-update该参数在搭建master=>slave=>slave的架构时,需要配置。

Binlog_format参数也特别重要。从mysql5.1版本开始引入这个参数,该参数可以设置的值有STATEMENT、ROW、MIXED;

(1)STATEMENT格式和之前的mysql版本一样,二进制日志文件记录的是日志的逻辑失SQL语句。

(2)在ROW格式下,二进制日志记录的不再是简单的SQL语句了,而是记录表的行更改情况,此时可以将InnoDB的事务隔离基本设为READ COMMITTED,以获得更好的并发性。

MySQL中二进制与重做日志文件的基本概念学习教程(mysql存二进制用哪个字段)

(3)MIXED格式下,mysql默认采用的STATEMENT格式进行二进制日志文件的记录,但是在一些情况下会使用ROW格式,可能的情况包括:

1)表的存储引擎为NDB,这时对于表的DML操作都会以ROW格式记录

2)使用了UUID()、USER()、CURRENT_USER()、FOUND_ROWS()、ROW_COUNT()等不确定函数

3)使用了INSERT DELAY语句

4)使用了用户定义函数

5)使用了临时表

重做日志Mysql默认情况下会有两个文件:ib_logfile0和ib_logfile1,这两个文件就是重做日志文件,或者事务日志。

重做日志的目的:万一实例或者介质失败,重做日志文件就能派上用场。

每个InnoDB存储引擎至少有一个重做日志文件组,每个文件组下至少有2个重做日志文件,如默认的ib_logfile0、ib_logfile1。InnoDB存储引擎先写重做日志文件1,当达到文件的最后时,会切换至重做日志文件2,当重做日志文件2也被写满时,会再被切换到重做日志文件1中。

影响重做日志的参数:

Innodb_log_file_size、innodb_log_files_in_group、innodb_log_group_home_dir影响着重做日志文件的属性。

重做日志与二进制日志的区别:

1)二进制日志会记录所有与mysql有关的日志记录,包括InnoDB等其他存储引擎的日志,而InnoDB存储引擎的重做日志只记录有关其本身的事务日志,

2)记录的内容不容,不管你将二进制日志文件记录的格式设为哪一种,其记录的都是关于一个事务的具体操作内容,而InnoDB存储引擎的重做日志文件记录的关于每个页的更改的物理情况;

3)写入的时间也不同,二进制日志文件是在事务提交前进行记录的,而在事务进行的过程中,不断有重做日志条目被写入重做日志文件中。

从日志缓冲写入磁盘上的重做日志文件的条件:

在主线程中每秒会将重做日志缓冲写入磁盘的重做日志文件中,不论事务是否提交。另一个触发这个过程是由参数innodb_flush_log_at_trx_commit控制,表示在提交时,处理重做日志的方式。

参数innodb_flush_log_at_trx_commit可设的值有0、1、2,0代表当提交事务时,并不将事务的重做日志写入磁盘上的日志文件,而是等待主线程每秒的刷新,而1和2不同的地方在于:1是在commit时将重做日志缓冲同步写到磁盘;2是重做日志异步写到磁盘,即不能完全保证commit时肯定会写入重做日志文件,只是有这个动作。

值得注意的一点:因为重做日志有个capacity变量,该值代表了最后的检查点不能超过这个阀值。

讲解Linux系统下如何自动备份MySQL数据的基本教程 1.先创建一个数据库备份目录:mkdirbackupcdbackupmkdirmysqlbackupcdmysqlbackup2.创建备份脚本vimysqlautobackup3.编写脚本:filename=`date+%Y%m%d`/mysql的bin目录/mysqldump--opt

解决MySQL中的Slave延迟问题的基本教程 一、原因分析一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发。简单说,在master上是并发模式(以InnoDB引擎为主

快速学习MySQL索引的入门超级教程 所谓索引就是为特定的mysql字段进行一些特定的算法排序,比如二叉树的算法和哈希算法,哈希算法是通过建立特征值,然后根据特征值来快速查找。而用的

标签: mysql存二进制用哪个字段

本文链接地址:https://www.jiuchutong.com/biancheng/312374.html 转载请保留说明!

上一篇:MySQL中InnoDB存储引擎的锁的基本使用教程(mysql innodb存储结构)

下一篇:讲解Linux系统下如何自动备份MySQL数据的基本教程(请问linux)

  • 福建税务网上办税流程
  • 社保阶段性减免延长到年底
  • 京东公户的钱怎么转出来
  • 业务招待费如何进行纳税筹划
  • 包装运杂费结转生产成本会计分录
  • 税务季报利润表的本年累计可以更改吗
  • 预包装食品是否备案怎么查询
  • 成本 费用区别
  • 19年高速公路免费时间
  • 进口货物的应纳增值税
  • 年度利润总额的12%
  • 摊销租金是什么意思
  • 城投公司代表政府出资工程交税吗
  • 预收帐款一直挂账好吗
  • 两个其他应收款的区别
  • 买了两个可以退一个吗
  • 项目上发生伙食问题
  • 年会奖金多少合适
  • 企业一般每个月几号上工伤保险
  • 全面营改增后,某房地产开发企业需要缴纳哪种税,为什么
  • 产值指的是财务报表哪个数值
  • 物流行业主营业务成本会计分录
  • 全年累计应税所得额
  • 制造企业享受增值税政策
  • 汇算清缴的年报在哪里查询
  • 出口退税款的账户是什么
  • 工资只发一半
  • 结转本月主营业务收入800000元,营业外收入2500元
  • mac设置邮件
  • 在线网速测试需要付费吗
  • 招待客户住宿费用计入什么科目
  • 物业公司监控一般保留多久
  • php实现的跟QQ和MSN类似的BICQ v2.0.0
  • qconsvc.exe - qconsvc是什么进程 有什么作用
  • 给子公司开票 总公司付款
  • PHP:apache_child_terminate()的用法_Apache函数
  • 退休人员被返聘还能领养老金吗?
  • 材料分配的四个步骤
  • 水培吊兰的养殖周期
  • phpsql查询
  • php db2
  • 猿创设计科技有限公司
  • 此战成硕,我成功上岸西南交通大学了~~~
  • hostnamectl命令可以永久修改主机名
  • 功能强大的php发展趋势
  • discuzq开发
  • python类 方法
  • 2000元以内最强二手游戏笔记本
  • ibm.data.db2
  • mysql客户端程序的功能是什么
  • 两个公司开发票
  • 固定资产的折余价值和账面价值如何确定
  • 应收账款的账期是什么意思
  • 发票开的是推广服务费计入什么费用?
  • 优惠的会计分录
  • 虚购发票进项税怎么处理
  • 租农民土地
  • 固定性制造费用能量差异公式
  • 企业退休职工取暖费
  • 现金收款的程序是什么
  • 什么叫做差旅费
  • 如何抵扣不动产增值税
  • 汇率的差额如何处理
  • 原材料入库单应根据采购订单还是到货数量
  • mysqlsh
  • sql not in 与not exists使用中的细微差别
  • Windows10 64位安装MySQL5.6.35的图文教程
  • 教大家如何重做作业
  • windows10预装
  • ksysslim.exe
  • SWNETSUP.EXE - SWNETSUP是什么进程 有什么用
  • win10 Mobile 10586.36预览版更新了哪些内容?
  • win7怎么设置自动开机时间
  • perl命令
  • java的file类的常用操作
  • python编写简单的计算器加减乘除
  • 公职律师
  • 个人出租住房增值税免税政策
  • 河南普通发票查询真伪查询系统
  • 成都税务举报电话多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设