我有一个PHP函数,该函数执行一些SQL查询,一系列SELECT / INSERT。
从标准表(InnoDB)和INSERT中读取的选择是在临时表(内存)中完成的。它们都不是在事务内执行的(即使我想使MySQL 5.7在启用GTID时不支持在事务内使用临时表也不能这样做)。
有一段时间,这些查询返回了“超出锁定超时”错误,由于没有事务,并且所有SELECT都是一致读取,所以我无法理解。我也无法想象INSERT会成为问题,因为所有临时表的作用域都与此线程/连接有关,并且只能使用一次。
很明显我必须缺少明显的东西吗?