表分区表 和 非分区表,进行left join操作,根据分区查询数据量2000多万,更新一直卡着不提交
SELECT * FROM information_schema.CLUSTER_TIDB_TRX
;看看有锁没有
没执行完吧。
减少点数据试试,有可能太大了,会超时后回滚…
有锁, START_TIME: 2023-04-03 09:47:39.223000
CURRENT_SQL_DIGEST: 6cf71fa94dd0666d7ec67ce208da45d6115dbbfd501714b40dbb061221f33454
CURRENT_SQL_DIGEST_TEXT: NULL
STATE: LockWaiting
WAITING_START_TIME: 2023-04-03 12:48:42.544918
MEM_BUFFER_KEYS: 0
MEM_BUFFER_BYTES: 0
SESSION_ID: 671
information_schema.data_lock_waits 这个表里是空的,怎么查看是哪个sql引起的
ID: 440529442366554141
START_TIME: 2023-04-03 09:47:39.223000
CURRENT_SQL_DIGEST: 6cf71fa94dd0666d7ec67ce208da45d6115dbbfd501714b40dbb061221f33454
CURRENT_SQL_DIGEST_TEXT: NULL
STATE: Idle
WAITING_START_TIME: NULL
MEM_BUFFER_KEYS: 0
MEM_BUFFER_BYTES: 0
SESSION_ID: 671
状态又变成 Idle了,还是执行中
抱歉,不是2000万,是200万,多写了个0,一直执行,没有锁,现在kill掉了,比较奇怪,分区表,就是按分区来批量执行的,比这个分区多的数据,都执行完了
您好
麻烦提供下集群版本和以下信息。方法如下
-
EXPLAIN FOR CONNECTION connection_id
connection_id 是通过 show processlist 获取的当前执行这个 SQL 的会话 id -
curl http://{tidb-ip}:10080/debug/zip?seconds=60 --output debug.zip
tidb-ip 为当前执行这个 SQL 的 tidb 实例 ip,10080 为 status port 的默认值