请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

小雅的二次人生 详解mysql数据库binlog三种模式的区别(row,statement,mixed) 失落的文明小说

[复制链接]
查看: 636|回复: 10

8

主题

40

帖子

55

积分

等待验证会员

积分
55
发表于 2017-2-25 14:41 | 显示全部楼层 |阅读模式
这是写在帖子头部的内容<h1>概述

Mysql binlog日志有三种格式,别离为Statement,MiXED,以及ROW!
这三种格式之间有什么区分呢?下面先先容下各自的优弱点。
<h1>ROW

日志中会记录成每一行数据被点窜的形式,然后在slave端再对不异的数据停止点窜,只记录要点窜的数据,只要value,不会有sql多表关联的情况。
优点:在row形式下,bin-log中可以不记录履行的sql语句的高低文相关的信息,仅仅只需要记录那一笔记录被点窜了,点窜成什么样了,所以row的日志内容会很是清楚的记录下每一行数据点窜的细节,很是轻易了解。而且不会出现某些特定情况下的存储进程和function,以及trigger的挪用和动身没法被正确复制题目。
弱点:在row形式下,一切的履行的语句当记录到日志中的时辰,都将以每行记录的点窜来记录,这样能够会发生大量的日志内容。



DXCPICKPRE_0</pre>



因而可知,row形式是针对每一行的数据,而于关联表无关,它把关联中的响应数据记录在log中。这样一来会发生大量的数据。
<h1>Statement

每一条会点窜数据的sql城市记录在binlog中。
优点:不需要记录每一行的变化,削减了binlog日志量,节俭了IO,进步性能。(相比row能节俭几多性能与日志量,这个取决于利用的SQL情况,一般同一笔记录点窜大概插入row格式所发生的日志量还小于Statement发生的日志量,可是斟酌到假如带条件的update操纵,以及整表删除,alter表等操纵,ROW格式会发生大量日志,是以在斟酌能否利用ROW格式日志时应当跟据利用的现真相况,其所发生的日志量会增加几多,以及带来的IO性能题目。)
弱点:由于记录的只是履行语句,为了这些语句能在slave上正确运转,是以还必须记录每条语句在履行的时辰的一些相关信息,以保证一切语句能在slave获得和在master端履行时辰不异 的成果。别的mysql 的复制,像一些特定函数功用,slave可与master上要连结分歧会有很多相关题目(如sleep()函数, last_insert_id(),以及user-defined functions(udf)会出现题目).



DXCPICKPRE_1</pre>

利用以下函数的语句也没法被复制:

DXCPICKPRE_2</pre><h1>Mixedlevel

是以上两种level的夹杂利用,一般的语句点窜利用statment格式保存binlog,如一些函数,statement没法完成主从复制的操纵,则采用row格式保存binlog,MySQL会按照履行的每一条具体的sql语句来区分看待记录的日志形式,也就是在Statement和Row之间挑选一种.新版本的MySQL中队row level形式也被做了优化,并不是一切的点窜城市以row level来记录,像碰到表结构变更的时辰就会以statement形式来记录。至于update大概delete等点窜数据的语句,还是会记录一切行的变更。
<h1>Binlog根基设置与格式设定

1.根基设置
Mysql BInlog日志格式可以经过mysql的my.cnf文件的属性binlog_format指定。如以下:
binlog_format = MIXED //binlog日志格式
log_bin =目录/mysql-bin.log //binlog日志名
expire_logs_days = 7 //binlog过期清算时候
max_binlog_size 100m //binlog每个日志文件巨细
2.Binlog日志格式挑选
Mysql默许是利用Statement日志格式,保举利用MIXED.
由于一些特别利用,可以斟酌利用ROWED,如自己经过binlog日志来同步数据的点窜,这样会节省很多相关操纵。对于binlog数据处置会变得很是轻松,相对mixed,剖析也会很轻松(固然条件是增加的日志量所带来的IO开销在容忍的范围内即可)。
3.mysqlbinlog格式挑选
mysql对于日志格式的选定原则:假如是采用 INSERT,UPDATE,DELETE 等间接操纵表的情况,则日志格式按照 binlog_format 的设定而记录,假如是采用 GRANT,REVOKE,SET PASSWORD 等治理语句来做的话,那末不管若何 都采用 SBR 形式记录
<h1>PS

在slave日志同步进程中,对于利用now这样的时候函数,MIXED日志格式,会在日志中发生对应的unix_timestamp()*1000的时候字符串,slave在完成同步时,取用的是sqlEvent发生的时候来保证数据的正确性。别的对于一些功用性函数slave能完成响应的数据同步,而对于上面指定的一些类似于UDF函数,致使Slave没法知晓的情况,则会采用ROW格式存储这些Binlog,以保证发生的Binlog可以供Slave完成数据同步。
前面会分享更多的devops和DBA方面的内容,感爱好的朋友可以关注一下~

感激您的阅读
http://wyovacationrental.com/100-mg-viagra-lowest-
回复

使用道具 举报

5

主题

47

帖子

54

积分

等待验证会员

积分
54
发表于 2019-5-15 21:18 | 显示全部楼层
row可以看到每一条sql的具体操作?
http://christmastreesnearme.net/levitra/
回复 支持 反对

使用道具 举报

6

主题

37

帖子

31

积分

等待验证会员

积分
31
发表于 2019-5-15 21:18 | 显示全部楼层
转发
http://stockprofitpros.com/generic-cialis/
回复 支持 反对

使用道具 举报

8

主题

39

帖子

53

积分

等待验证会员

积分
53
发表于 2019-5-15 21:18 | 显示全部楼层
不错
http://sammycommunitytransport.org/super-kamagra/
回复 支持 反对

使用道具 举报

5

主题

36

帖子

40

积分

等待验证会员

积分
40
发表于 2019-5-15 21:18 | 显示全部楼层
转发了
http://metropolitanbaptistchurch.org/fildena/
回复 支持 反对

使用道具 举报

9

主题

43

帖子

63

积分

等待验证会员

积分
63
发表于 2019-5-15 21:18 | 显示全部楼层
转发了
http://stockprofitpros.com/amoxicillin/
回复 支持 反对

使用道具 举报

6

主题

43

帖子

50

积分

等待验证会员

积分
50
发表于 2019-5-15 21:18 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

8

主题

45

帖子

59

积分

等待验证会员

积分
59
发表于 2019-5-15 21:18 | 显示全部楼层
转发了
http://jokesaz.com/levitra-20mg-best-price/
回复 支持 反对

使用道具 举报

8

主题

39

帖子

57

积分

等待验证会员

积分
57
发表于 2019-5-15 21:18 | 显示全部楼层
转发了
http://calendr.net/fildena/
回复 支持 反对

使用道具 举报

4

主题

44

帖子

49

积分

等待验证会员

积分
49
发表于 2019-5-15 21:18 | 显示全部楼层
转发了
http://metropolitanbaptistchurch.org/fluoxetine/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 安平信息网,安平信息港,安平便民信息服务综合门户网站 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表