降低隔离级别

如果你的使用场景里,不涉及上面这种在数据库外部控制两个同时运行的事务提交顺序的情况,可以尝试将一致性级别降低,减少一次 TiDB 从 PD TSO 获取时间戳的耗时。

TiDB 5.1.0

怎么降低?

1 个赞

参考这个图吧

image

谢谢,很清楚,但是怎么调呢?

你要降低一致性和隔离性的级别么?

对,调低,调高。我调低后不合适还想调回来,所以麻烦都说一下。谢谢。

参考下文档中描述:

这篇是隔离级别的说明
https://docs.pingcap.com/zh/tidb/stable/transaction-isolation-levels

这篇是告诉你怎么设置:
https://docs.pingcap.com/zh/tidb/stable/sql-statement-set-transaction#mysql-兼容性

这篇是1PC 因果一致性的说明
https://docs.pingcap.com/zh/tidb/stable/transaction-overview#因果一致性事务

就是说没法全局设置 最终一致是吧,隔离级别只有悲观事务能设置RC,乐观事务没有。想减少一次时间戳的交互只能通过事务开启的时候明确指出对吧。

全局有默认的配置,可以设置,但是tidb 支持的隔离级别,只有哪些(毕竟不同于单机数据库)

因果一致性,不是严格一致性,也不是顺序一致性,看你的应用场景,怎么用合适

有些场景对性能要求比较高,事务也明确知道没有冲突,比如时间序列的数据存储,这种情况就适合最终一致了对吧。没法全局设置的话,得改业务代码。

高写入的方案,还有直接写入 Tikv的,采用标准的KV 模式,这样的性能是最好的

但是没办法通过 Tidb 的接入去读,tidb 实现的是 txnAPI,
tikv 默认 的是 rawAPI,两个API 处理的方式不一样,相互不兼容

看你的需求

:ok_hand:感谢大神解答

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。