TiDB 分布式事务相比 MySQL 单机事务,优势和代价分别是什么?
1 个赞
大事务在 TiDB 中确实需要避免,建议控制在 5000 行以内。如果遇到悲观锁超时,可以检查下 lock-wait-timeout 配置。跨节点事务的性能开销比较大,能拆分的话尽量拆成单分片事务。
1 个赞
优势:支持跨节点、跨表数据强一致性,可横向扩容承载海量数据与高并发;
代价:基于 2PC 与 Raft 协议,流程更复杂,提交延迟、网络开销更高。
1 个赞
网络开销和常见的CAP理论
拥有真正跨分片、跨机器的 ACID 强事务,不用业务层开发柔性事务,支持无限扩容,全局一致快照读,解决分库分表 MySQL 跨库事务无解的痛点。
1 个赞
说实话,再TiDB里几乎没遇到锁表的情况。
优势就是:tidb好像没有MySQL那么重的间隙锁的机制了。
劣势:分布式事务应该比单机的MySQL事务锁更重了。
1 个赞
优势 :支持跨多个 TiKV 节点的 ACID 分布式事务
代价:分布式事务引入网络通信开销
1 个赞
这个问题可以看看官方文档的 FAQ,TiDB 在这块有比较详细的说明。方便的话贴一下具体的报错日志,方便大家帮忙定位。
建议看下 TiDB Dashboard 的监控,特别是慢查询和 KV 耗时,能快速定位瓶颈。有具体报错贴一下,我帮你分析看。
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。