我正在将数据插入到我的一个表中,并且我不断获得锁定。
insert into inventory_files(id, pro_id) values(30,6569);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误。
Error Code: 1205. Lock wait timeout exceeded; try restarting transaction 51.004 sec
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
Run Code Online (Sandbox Code Playgroud)
然后插入该数据。
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ;
Run Code Online (Sandbox Code Playgroud)
我插入其他表没有任何问题。任何其他建议。
我也跑了。
SHOW ENGINE INNODB STATUS;
Run Code Online (Sandbox Code Playgroud)
没有桌子被锁。
'InnoDB', '', '
2017-08-04 13:57:34 0x7f0c44461700 INNODB 监视器输出 从过去 29 秒计算出的每秒平均值
背景话题
srv_master_thread 循环:93 srv_active、0 srv_shutdown、2985 srv_idle
srv_master_thread 日志刷新并写入:3076
信号量
操作系统等待数组信息:保留计数 29
操作系统等待数组信息:信号计数 29
RW 共享旋转 0,轮次 52,操作系统等待 26
RW-excl 自旋 0、轮数 0、OS 等待 0
RW-sx 自旋 …
我的基本问题陈述是,我想从具有 100 万行的表中一次只提取 2000 行的每一行。在评估这些分块查询后,我想删除每一行。
所以就说我有
a = Model.objects.filter(id=1<2000)
b = Model.objects.filter(id=2000<4000)
c = Model.objects.filter(id=4000<6000)
..
..
Run Code Online (Sandbox Code Playgroud)
现在,如果我通过某种方式将所有这些查询集组合成一个查询集
del = a + b + c +d ......
我做
del.delete()
那么它会在更短的时间内删除所有行还是会再次重新处理查询以删除它们并且需要时间?
我已经能够使用connector/j成功连接到MySQL数据库,但我不知道从哪里开始.我想克隆数据库以用于新的子域,我只是想知道是否有人可以给我一个提示,所以我知道要去哪个方向.
任何帮助将不胜感激,谢谢.