两个进程共享同一个 MySQL 连接(以节省重新连接的开销)。他们一个接一个地使用连接,即当另一个进程当前正在使用它时,一个进程从不使用该连接。
这有一个问题:有时进程 A 离开与未决事务的连接,或者一些表被锁定,临时表......当进程 B 获得连接时它不知道(并且不想知道)它必须处理这个“历史”。
我想做的是在将连接提供给进程之前清除连接。即清除与之前其他进程完成的连接使用相关的所有当前数据。
一些帖子建议这样做(使用 API),而如果可能的话,我更喜欢使用 MySQL 命令(类似查询)(类似于FLUSH
or RESET
,但这可以满足我的需要)
mysql_change_user(connection, user, password[, db])
问题
- 有没有更好的方法来清除连接?
- 做一个“改变用户”还是比创建一个新的连接更好(性能方面)?