本文技术点:
connection_id
lock tables table_name read
connection_id
select connection_id()
可以获取到当前连接的id,我觉得这个能使用这个函数对于理解msyql很有帮助。
从大类上分,其实可以分到自省的那种类型,是一种自我认知的方式,程序所提供的能力。
通过connection_id可以理解,到底是一个连接还是两个连接,比如使用Navicat客户端,再开一个tab页,再查看connection_id发现已经变了。
show processlist里面的id列出的是用户能查看的所有的id。
lock tables
起因:我在测试某个进度的功能, 我想延迟下应用程序往数据库里面写入的速度,突然灵机一动,我想是不是有种锁可以阻止应用会话往数据库里面写入数据呢?查了一下,果然,表锁是个不错的方法。
参考文章https://www.cnblogs.com/kerrycode/p/6991502.html
show open tables
unlock tables
解锁表
使用unlock tables释放该连接持有的表锁。
基本概念
一个连接 = 一个会话 = 一个服务端的线程