mysql下的事务一致性怎么解释?

是指值得前后操作,值得变化逻辑上是成立的,多版本同表的最后返回的结果必须是一致的,若用tinyint来存放数据,当达到上限的时候,就保留上限值,溢出的值将不存到数据库中,... 是指值得前后操作,值得变化逻辑上是成立的,多版本同表的最后返回的结果必须是一致的,若用tinyint来存放数据,当达到上限的时候,就保留上限值,溢出的值将不存到数据库中,这种不满足事务的一致性,使用rollback回滚,这样解释合理吗?
但是自己在数据库上试了一下,溢出后,结束事务commit;数据还是跑到最大值,怎么解释一致性合理
展开
 我来答
爱可生云数据库
2020-11-04 · MySQL开源数据库领先者
爱可生云数据库
爱可生,金融级开源数据库和数据云服务整体解决方案提供商;优秀的开源数据库技术,企业级数据处理技术整体解决方案提供商;私有云数据库云服务市场整体解决方案提供商。
向TA提问
展开全部

用 pt-table-checksum 时,会不会影响业务性能?

实验


实验开始前,给大家分享一个小经验:任何性能评估,不要相信别人的评测结果,要在自己的环境上测试,并(大概)知晓原理。

我们先建一对主从:

然后用 mysqlslap跑一个持续的压力:

开另外一个会话,将 master 上的 general log 打开:

然后通过 pt-table-checksum 进行一次比较:

查看 master 的 general log,由于 mysqlslap 的影响,general log 中有很多内容,我们找到与 pt-table-checksum 相关的线程:

将该线程的操作单独列出来:

操作比较多,我们一点一点来说明:

这里工具调小了 innodb 锁等待时间。使得之后的操作,只要在 innodb 上稍微有锁等待,就会马上放弃操作,对业务影响很小。

另外工具调小了 wait_timeout 时间,倒是没有特别的作用。


工具将隔离级别调整为了 RR 级别,事务的维护代价会比 RC 要高,不过后面我们会看到工具使用的每个事务都很小,加上之前提到 innodb 锁等待时间调到很小,对线上业务产生的成本比较小。

RR 级别是数据对比的基本要求。

工具通过一系列操作,了解表的概况。工具是一个数据块一个数据块进行校验,这里获取了第一个数据块的下边界。

接下来工具获取了下一个数据块的下边界,每个 SQL前都会 EXPLAIN 一下,看一下执行成本,非常小心翼翼。

之后工具获取了一个数据块的 checksum,这个数据块不大,如果跟业务流量有冲突,会马上出发 innodb 的锁超时,立刻退让。

以上是 pt-table-checksum 的一些设计,可以看到这几处都是精心维护了业务流量不受影响。

工具还设计了其他的一些机制保障业务流量,比如参数 --max-load 和 --pause-file 等,还有精心设计的数据块划分方法,索引选择方法等。大家根据自己的情况配合使用即可达到很好的效果。


总结

本期我们介绍了简单分析 pt-table-checksum 是否会影响业务流量,坊间会流传工具的各种参数建议或者不建议使用,算命的情况比较多,大家都可以用简单的实验来分析其中机制。

还是那个观点,性能测试不能相信道听途说,得通过实验去分析。

198901245631
2015-04-03 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1753万
展开全部
你好:说白了就是要不都提交成功,要不就都直接回滚。一般都是遇到exception;
如果事物提交后,那么只能回滚未提交的。
追问
一致性还是不是很懂,就意味着在逻辑上必须符合,但是若逻辑是错误的,例如提现本来应该体现500的,但是只吐钞100,逻辑上是错误的,语句正确,不符合事务的一致性,这样解释对吗?但是程序运行通过
追答
你好:他会判断你的钱是100还是500的,100不符合500块的条件是不会给你走下一步的,直接让你失败了,这个就是事物的回滚,如果他检查是500,那么久直接提交给你,让你取钱,这个就是commit;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式