还有别的进程在更新这张表吗?
3w数据也不多啊。limit 搞起来,一段段的删。
按照主键id范围切片,分段删除
没有,感觉tidb的删除时个大坑
3万数据也不算多,需要这么费劲吗?
那执行计划贴一下看看
这是我实践中清理tidb大量数据的脚本,这样可以实现删除百万级别以上的数据,而且不影响tidb正常使用,希望能帮助到你
date1=date --date "7 days ago" +"%Y-%m-%d"
delete_db_sql=“delete from mysql_table where create_date_time<‘$date1’ limit 10000”
i=0
while ((++i)); do
a=/bin/mysql -uroot -p123456 -A mysql_database -h127.0.0.1 --comments -e "${delete_db_sql}" -vvv|grep "Query OK" |awk '{print $3}'
if(($a<1)); then
break 1
fi
sleep 1
printf “%-4d” $((i))
done
厉害了,删除都开始这么麻烦了
参考一下这位老师的思路,优先排查一下锁冲突问题。这个问题很大部分可能是锁冲突导致的获取所锁超时。另外你可以通过 https://docs.pingcap.com/zh/tidb/v6.1/information-schema-data-lock-waits#data_lock_waits 查看当前 TiKV 中悲观锁的情况。