mysql加写锁不生效

1. 背景

  需要验证:程序查询mylsq失败后执行流程是否符合预期。
  待测试的程序:1.定时从mysql中读取数据;2.程序已经配置读写超时。

验证过程:
  程序启动之后,添加写锁,下一次查询mysql应该失败,会执行失败流程。发现添加写锁之后,还能正确读取数据。

2. 加锁/解锁

加锁:

  • locak table ‘table’ [read|write]

解锁:

  • unlock tables
3. 失效原因

加锁之后的表现:

  1. 程序中定时读取数据正常
  2. 当前窗口终端,能查询到数据
  3. 新开启的终端,查询数据阻塞

从表现看 1和2 在加锁前都有从db中读取过数据,3是在加锁之后开始读数据。推测和缓存有关。

查询发现有开启缓存:

MariaDB> show variables like "%query_cache%";
+------------------------------+----------+
| Variable_name                | Value    |
+------------------------------+----------+
| have_query_cache             | YES      |
| query_cache_limit            | 1048576  |
| query_cache_min_res_unit     | 4096     |
| quer
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值