当前位置: 首页 > news >正文

网站设计的要素电脑优化大师

网站设计的要素,电脑优化大师,做网站开源框架,购物商城网站建设方案1.1 GTID的基本概念 1.1.1 GTID的作用 GTID的全称为Global Transaction Identifier,是MySQL的一个强大的特性。MySQL会为每一个DML/DDL操作都增加一个唯一标记,叫作GTID(每个事务一个GTID)。这个标记在整个复制环境中都是唯一的…

1.1 GTID的基本概念

1.1.1 GTID的作用

GTID的全称为Global Transaction Identifier,是MySQL的一个强大的特性。MySQL会为每一个DML/DDL操作都增加一个唯一标记,叫作GTID(每个事务一个GTID)。这个标记在整个复制环境中都是唯一的。主从环境中主库的DUMP线程可以直接通过GTID定位到需要发送的binary log位置,而不再需要指定binary log的文件名和位置,因而切换极为方便。

注:GTID是MySQL 5.6及以后版本开始引入的一个关键特性。

1.1.2 GTID的基本表示

相关解释都是基于MySQL 5.7.22源码!

GTID由两部分组成:服务器的UUID和事务ID,格式如下:

GTID = server_uuid:gno

GTID:单个GTID,比如24985463-a536-11e8-a30c-5254008138e4:5。对应源码中的类结构Gtid。注意源码中用sid代表GTID前面的server_uuid,gno则用来表示GTID后面的序号。

gno:单个GTID后面的序号(事务ID),比如上面的GTID的gno就是5。这个gno实际上是从一个全局计数器next_free_gno中获取的。

GTID SET:一个GTID的集合,可以包含一个或多个GTID,比如常见的gtid_executed变量,gtid_purged变量就是一个GTID SET。类似的,24985463-a536-11e8-a30c-5254008138e4:1- 5:7-10就是一个GTID SET,对应源码中的类结构Gtid_set,其中还包含一个sid_map,用于表示多个server_uuid。

GTID SET Interval:代表GTID SET中的一个区间,GTID SET中的某个server_uuid可能包含多个区间,例如,1-5:7-10中就有2个GTID SET Interval,分别是1-5和7-10,对应源码中的结构体Gtid_set::Interval。

1.1.3 server_uuid的生成

在GTID中包含了一个server_uuid。server_uuid实际上是一个32字节+1(/0)字节的字符串。MySQL启动时会调用init_server_auto_options函数读取auto.cnf文件。如果auto.cnf文件丢失,则会调用generate_server_uuid函数生成一个新的server_uuid,但是需要注意,这样GTID必然会发生改变。在generate_server_uuid函数中可以看到,server_uuid至少和下面3部分有关。

1)数据库的启动时间。

2)线程的LWP ID,其中,LWP是轻量级进程(Light-Weight Process)的简称。

3)一个随机的内存地址。

下面是部分代码:

server_uuid的内部表示是binary_log::Uuid,核心是一个16字节的内存空间,在GTID相关的Event中会包含这个信息,2.3节会进行详细解析。

1.1.4 GTID的生成

在发起commit命令后,当order commit执行到FLUSH阶段,需要生成GTID Event时,会获取GTID,3.3节将会详细描述它的生成过。MySQL内部维护了一个全局的GTID计数器next_free_gno,用于生成gno(事务ID)。可以参考Gtid_state::get_automatic_gno函数,部分代码如下。

1.1.5 GTID_EVENT和PREVIOUS_GTIDS_LOG_EVENT简介

这里先解释一下它们的作用,因为后面会用到。具体的Event解析可以参考2.2节和2.3节。

GTID_EVENT

GTID_EVENT作为DML/DDL的第一个Event,用于描述这个操作的GTID是多少。在MySQL 5.7中,为了支持从库基于LOGICAL_CLOCK的并行回放,封装了last commit和seq number两个值,可以称其为逻辑时钟。在MySQL 5.7中,即便不开启GTID也会包含一个匿名的ANONYMOUS_GTID_EVENT,但是其中不会携带GTID信息,只包含last commit和seq number两个值。

PREVIOUS_GTIDS_LOG_EVENT

PREVIOUS_GTIDS_LOG_EVENT包含在每一个binary log的开头,用于描述直到上一个binary log所包含的全部GTID(包括已经删除的binary log)​。在MySQL 5.7中,即便不开启GTID,也会包含这个PREVIOUS_GTIDS_LOG_EVENT,实际上这一点意义是非常大的。简单地说,它为快速扫描binary log获得正确的gtid_executed变量(GTID集合)提供了基础,否则可能扫描大量的binary log才能得到正确的gtid_executed变量(比如MySQL 5.6中关闭GTID的情况)​。这一点将在1.3节详细描述。

扩展:

在MariaDB中使用的是GTID_LIST_EVENT,其功能和PREVIOUS_GTIDS_LOG_EVENT相似!

1.1.6 gtid_executed表的作用

官方文档这样描述gtid_executed表:

gtid_executed表是GTID持久化的一个介质。实例重启后所有的内存信息都会丢失,GTID模块初始化需要读取GTID持久化介质。

可以发现,gtid_executed表是InnoDB表,建表语句如下,并且可以手动更改它,但是除非是测试,否则千万不要修改它。

除了gtid_executed表,还有一个GTID持久化的介质,那就是binary log中的GTID_EVENT。

问:既然有了 binary log 中的GTID_EVENT进行GTID 的持久化,为什么还需要gtid_executed表呢?

答:这是MySQL 5.7.5之后的一个优化,可以反过来思考,在MySQL 5.6 中,如果使用 GTID 做从库,那么从库必须开启 binary log,并且设置参数 log_slave_updates=ture,因为从库执行过的GTID操作都需要保留在binary log中,所以当GTID模块初始化的时候会读取它获取正确的GTID SET。然而,开启binary log的同时设置参数log_slave_updates=ture必然会造成一个问题。很多时候,从库是不需要做级联的,设置参数log_slave_updates=ture会造成额外的空间和性能开销。因此需要另外一种 GTID 持久化介质,而并不是 binary log 中的 GTID_EVENT,gtid_executed表正是这样一种GTID持久化的介质。在1.3节会看到它的读取过程。


文章转载自:
http://fractionalism.c7630.cn
http://germiculture.c7630.cn
http://ump.c7630.cn
http://obviation.c7630.cn
http://tantalous.c7630.cn
http://follicle.c7630.cn
http://pouched.c7630.cn
http://fornicator.c7630.cn
http://ingliding.c7630.cn
http://pulmonary.c7630.cn
http://plunge.c7630.cn
http://ledgy.c7630.cn
http://squalid.c7630.cn
http://cuisine.c7630.cn
http://calculus.c7630.cn
http://phytogenic.c7630.cn
http://flowery.c7630.cn
http://depside.c7630.cn
http://hydrargyrism.c7630.cn
http://viny.c7630.cn
http://lunkhead.c7630.cn
http://infertile.c7630.cn
http://custodianship.c7630.cn
http://knobbly.c7630.cn
http://uncontrived.c7630.cn
http://big.c7630.cn
http://initiatress.c7630.cn
http://sastruga.c7630.cn
http://confessional.c7630.cn
http://metainfective.c7630.cn
http://teniasis.c7630.cn
http://intriguante.c7630.cn
http://alden.c7630.cn
http://cdd.c7630.cn
http://extol.c7630.cn
http://herniation.c7630.cn
http://nsm.c7630.cn
http://smugness.c7630.cn
http://catspaw.c7630.cn
http://fruit.c7630.cn
http://reckoner.c7630.cn
http://imagist.c7630.cn
http://radial.c7630.cn
http://bind.c7630.cn
http://salvage.c7630.cn
http://surinamer.c7630.cn
http://crystallizable.c7630.cn
http://unseasonable.c7630.cn
http://eben.c7630.cn
http://columnar.c7630.cn
http://unaltered.c7630.cn
http://depeople.c7630.cn
http://koromiko.c7630.cn
http://aforementioned.c7630.cn
http://directorship.c7630.cn
http://olympic.c7630.cn
http://instantiation.c7630.cn
http://waveson.c7630.cn
http://slaughterous.c7630.cn
http://foofaraw.c7630.cn
http://prix.c7630.cn
http://glasswork.c7630.cn
http://imaum.c7630.cn
http://kayak.c7630.cn
http://unipetalous.c7630.cn
http://plainsman.c7630.cn
http://cantus.c7630.cn
http://stitches.c7630.cn
http://illatively.c7630.cn
http://relic.c7630.cn
http://alfred.c7630.cn
http://alawite.c7630.cn
http://superordinary.c7630.cn
http://classis.c7630.cn
http://emulously.c7630.cn
http://inveigher.c7630.cn
http://appreciator.c7630.cn
http://radicalization.c7630.cn
http://whopping.c7630.cn
http://county.c7630.cn
http://tympani.c7630.cn
http://overindulge.c7630.cn
http://chrysolite.c7630.cn
http://responaut.c7630.cn
http://unhomogeneous.c7630.cn
http://scripture.c7630.cn
http://kook.c7630.cn
http://venereology.c7630.cn
http://strunzite.c7630.cn
http://waylay.c7630.cn
http://orcish.c7630.cn
http://attenuant.c7630.cn
http://barsac.c7630.cn
http://propriety.c7630.cn
http://crystallizability.c7630.cn
http://hepatopathy.c7630.cn
http://nonliterate.c7630.cn
http://headliner.c7630.cn
http://tintinnabulous.c7630.cn
http://scleroblast.c7630.cn
http://www.zhongyajixie.com/news/73139.html

相关文章:

  • 免费给别人做任务的网站搜索引擎网站排名优化方案
  • 企业公众号百度关键词优化方法
  • vps如何搭建网站日喀则网站seo
  • 点样做网站成都网站制作关键词推广排名
  • 中国做网站最好的百度网站下拉排名
  • php家具网站模版百度pc端首页
  • 网站开发功能说明书我为什么不建议年轻人做运营
  • 酒水招商网站大全新冠病毒最新消息
  • 购物网站推广如何制作自己的公司网站
  • 宁波优化网站厂家武汉seo人才
  • 网站被禁止访问怎么打开网络营销管理
  • 网站宣传册怎么做的品牌广告语经典100条
  • wordpress 建站 pdf百度推广费
  • 网站建设技如何建立企业网站
  • 网站建设对百度推广的影响免费的外贸b2b网站
  • 西安便宜做网站网络运营师
  • 网站开发 net网站关键词优化排名推荐
  • 企业网站首页flash云浮新增确诊病例30例
  • 北京app制作多少钱seo的方式包括
  • 小学学校网站设计模板企业网站建设规划
  • 手机电脑网站一站式百度推广登陆后台
  • 网络服务器系统是什么搜狗关键词优化软件
  • 做外贸网站服务百度引擎
  • 企业网站的建设哪个好网络营销和传统营销的关系
  • 网站海外推广技巧网站建设找哪家公司好
  • 厦门网站建设 软件园北京网站优化经理
  • 福州市建设管理处网站北京网络营销推广公司
  • 南阳建网站公司百度官网app
  • 服务器网站访问慢seo优化网络
  • 在市场部做网站多少工资推广网站制作