永发信息网

CodeIgniter如何给InnoDB上表锁?

答案:2  悬赏:60  手机版
解决时间 2021-01-30 23:21
  • 提问者网友:杀手的诗
  • 2021-01-30 06:48
$DB = $this->load->database('default',TRUE);
$DB->query('set autocommit=0');
$DB->query('loca table tbl_name write');
为什么加锁不成功?
最佳答案
  • 五星知识达人网友:笑迎怀羞
  • 2021-01-30 08:27
对write,MySQL使用的表锁定方法原理如下:

如果在表上没有锁,在它上面放一个写锁。
否则,把锁定请求放在写锁定队列中。
对read,MySQL使用的锁定方法原理如下:

如果在表上没有写锁定,把一个读锁定放在它上面。
否则,把锁请求放在读锁定队列中。
当一个锁定被释放时,锁定可被写锁定队列中的线程得到,然后是读锁定队列中的线程。

这意味着,如果你在一个表上有许多更新,SELECT语句将等待直到没有更多的更新。
全部回答
  • 1楼网友:七十二街
  • 2021-01-30 09:31
搜一下:CodeIgniter如何给InnoDB上表锁?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯