Rumah > pembangunan bahagian belakang > tutorial php > 我想测试InnoDB的行锁怎么测试不了呢?帮忙看下我的代码没错吧?

我想测试InnoDB的行锁怎么测试不了呢?帮忙看下我的代码没错吧?

WBOY
Lepaskan: 2016-06-06 20:23:41
asal
1179 orang telah melayarinya

<code>$u = M('r.goods');
$u->startTrans();
$arr = $u->lock(true)->select(8);
……</code>
Salin selepas log masuk
Salin selepas log masuk

注意我没有提交事务哦

现在的问题是:我要怎么来测试锁定呢?

网上说:“要测试锁定的状况,可以利用MySQL 的Command Mode ,开二个视窗来做测试。”

我开了两个命令行窗口A和B,A窗口开启事务,然后sql加锁查询,B窗口不进行任何操作,直接执行同样的加锁查询,感受到了这个“锁定等待”的状态,没有任何问题。

但是为什么我上面写的代码同样的没有提交事务,为什么刷新两次页面没有“锁住,页面卡主”的感觉啊,难道是php脚本执行完后,所开启的事务“自动失效”,还是什么情况呢,还是我写的代码有问题,怎么测试不出来跟命令行窗口中相同的效果呢?

还有一个疑问,我上面B窗口并没有开启事务,只是执行加锁查询,这样也会受影响吗?难道是加锁需要在事务区块中才能生效,而其他的查询时不一定要在事务中是吧,只要是带加锁查询的sql语句才会受上一个事务的影响是吧。

那为何我写的代码测试不出来这个效果呢?

回复内容:

<code>$u = M('r.goods');
$u->startTrans();
$arr = $u->lock(true)->select(8);
……</code>
Salin selepas log masuk
Salin selepas log masuk

注意我没有提交事务哦

现在的问题是:我要怎么来测试锁定呢?

网上说:“要测试锁定的状况,可以利用MySQL 的Command Mode ,开二个视窗来做测试。”

我开了两个命令行窗口A和B,A窗口开启事务,然后sql加锁查询,B窗口不进行任何操作,直接执行同样的加锁查询,感受到了这个“锁定等待”的状态,没有任何问题。

但是为什么我上面写的代码同样的没有提交事务,为什么刷新两次页面没有“锁住,页面卡主”的感觉啊,难道是php脚本执行完后,所开启的事务“自动失效”,还是什么情况呢,还是我写的代码有问题,怎么测试不出来跟命令行窗口中相同的效果呢?

还有一个疑问,我上面B窗口并没有开启事务,只是执行加锁查询,这样也会受影响吗?难道是加锁需要在事务区块中才能生效,而其他的查询时不一定要在事务中是吧,只要是带加锁查询的sql语句才会受上一个事务的影响是吧。

那为何我写的代码测试不出来这个效果呢?

大神在哪里,大神在哪里?,帮忙看下啊,为什么我自己打开多个页面测试不出来锁的效果呢?

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan