核心原因
-
TiDB 的 SLOW_QUERY / CLUSTER_SLOW_QUERY 是内存表 / 临时汇总表
它不是普通 InnoDB 表,不会自动在事务中刷新。 -
pymysql 默认开启自动提交 = False,会进入一个长事务
你在 Python 里第一次连接后,就进入了一个事务快照。
之后慢查询新产生的数据,在这个事务里看不见。
而你在命令行:
• 要么每条语句自动提交
• 要么每次重连新会话
所以能查到最新数据。
核心原因
TiDB 的 SLOW_QUERY / CLUSTER_SLOW_QUERY 是内存表 / 临时汇总表
它不是普通 InnoDB 表,不会自动在事务中刷新。
pymysql 默认开启自动提交 = False,会进入一个长事务
你在 Python 里第一次连接后,就进入了一个事务快照。
之后慢查询新产生的数据,在这个事务里看不见。
而你在命令行:
• 要么每条语句自动提交
• 要么每次重连新会话
所以能查到最新数据。