事务内存占用

我能想到的几点

  1. 多用内存情况,select * from XXX limit 1,但 tikv 是并发返回给 tidb 的,意味着 tidb 的 receive channel 中会多接数据占用内存;
  2. 实现方式导致的,因为 tidb 使用 go 写的,不同层级算子的处理可能存在 slice 复制;
  3. 另一种是,数据从 tikv 楼上来之后,还要聚合算子的,底层不一定会提前释放,相当于接受的数据占用空间,用于计算聚合的数据结构占用的空间,以及聚合结果占用的空间等等;

首先,tidb-in-action 是 DB + 开源 爱好者 24h 之内写出来的 book,如果 100% 清晰解答这段话需要问到作者写这段话是基于哪个 case,前提条件是什么,用的算子是什么,执行计划是什么,这些搞明白了才能真的解答你的问题。(另外,他直接写这么一段话,我也有理由怀疑他写的有问题:joy:)

BTW : 提问之前最好信息说全,及说出自己理解,https://book.tidb.io/session1/chapter6/big-txn-in-4.0.html ,如果回答者没读过 tidb-in-action 根本不知道引自何处,哪个位置。