当前位置:首页 » 币种行情 » trx量化策略

trx量化策略

发布时间: 2022-04-13 13:36:47

① innodb存储引擎的数据文件放在哪里

MySQL数据库InnoDB存储引擎使用了B策略, InnoDB存储引擎中的恢复机制有几个特点:
A. 在重做Redo Log时,并不关心事务性。 恢复时,没有BEGIN,也没有COMMIT,ROLLBACK的行为。也不关心每个日志是哪个事务的。尽管事务ID等事务相关的内容会记入Redo Log,这些内容只是被当作要操作的数据的一部分。

B. 使用B策略就必须要将Undo Log持久化,而且必须要在写Redo Log之前将对应的Undo Log写入磁盘。Undo和Redo Log的这种关联,使得持久化变得复杂起来。为了降低复杂度,InnoDB将Undo Log看作数据,因此记录Undo Log的操作也会记录到redo log中。这样undo log就可以象数据一样缓存起来,而不用在redo log之前写入磁盘了。

包含Undo Log操作的Redo Log,看起来是这样的:

记录1: <trx1, Undo log insert <undo_insert …>>

记录2: <trx1, insert …>

记录3: <trx2, Undo log insert <undo_update …>>

记录4: <trx2, update …>

记录5: <trx3, Undo log insert <undo_delete …>>

记录6: <trx3, delete …>

C. 到这里,还有一个问题没有弄清楚。既然Redo没有事务性,那岂不是会重新执行被回滚了的事务?确实是这样。同时Innodb也会将事务回滚时的操作也记录到redo log中。回滚操作本质上也是对数据进行修改,因此回滚时对数据的操作也会记录到Redo Log中。

一个回滚了的事务的Redo Log,看起来是这样的:

记录1: <trx1, Undo log insert <undo_insert …>>

记录2: <trx1, insert A…>

记录3: <trx1, Undo log insert <undo_update …>>

记录4: <trx1, update B…>

记录5: <trx1, Undo log insert <undo_delete …>>

记录6: <trx1, delete C…>

记录7: <trx1, insert C>

记录8: <trx1, update B to old value>

记录9: <trx1, delete A>

一个被回滚了的事务在恢复时的操作就是先redo再undo,因此不会破坏数据的一致性.
- InnoDB存储引擎中相关的函数
Redo: recv_recovery_from_checkpoint_start()
Undo: recv_recovery_rollback_active()
Undo Log的Redo Log: trx_undof_page_add_undo_rec_log()

② Mysql中为什么使用InnoDB存储引擎的时候建议关闭回写缓存

参考答案 少壮不努力,老大徒伤悲。

热点内容
国池保护比特币 发布:2025-05-15 08:18:49 浏览:842
以太坊注册赠送 发布:2025-05-15 08:04:16 浏览:526
和彩云合约服务怎么取消 发布:2025-05-15 08:01:19 浏览:430
今日eth多头发行行情 发布:2025-05-15 08:01:16 浏览:136
会展中心去哈西站 发布:2025-05-15 07:56:58 浏览:267
陕西公安网首例区块链网络传销 发布:2025-05-15 07:43:38 浏览:669
元宇宙相关职业应聘 发布:2025-05-15 07:43:06 浏览:963
京东数科与央行数字货币合作 发布:2025-05-15 07:35:47 浏览:524
o型圈摩擦力怎么算 发布:2025-05-15 07:29:20 浏览:910
10月25日央视新闻区块链 发布:2025-05-15 07:29:17 浏览:352