0

如果我TRUNCATE在一个表上启动 a ,INSERT对那个表执行的 s 会发生什么?他们是排队直到TRUNCATE完成,还是只是被丢弃?我知道这种情况非常罕见,但这是可能的。

我在 MySQL 中使用 PDO 事务,但是TRUNCATE在事务之后我必须对表进行操作。我不想DELETE在事务中使用,因为它比TRUNCATE. 这是针对网站上的统计记录器的,因此可以轻松地对同一个表进行并发请求。

执行的查询是(来自查询日志):

SHOW PROCESSLIST
SELECT COUNT(*) AS Counter FROM stats_current
START TRANSACTION
LOCK TABLES stats_current WRITE, stats WRITE
UNLOCK TABLES
LOCK TABLES stats_customer_current WRITE, stats_customer WRITE
UNLOCK TABLES
LOCK TABLES stats_update_queue WRITE, stats_customer_current WRITE, stats_customer WRITE
UNLOCK TABLES
TRUNCATE stats_update_queue
commit
4

0 回答 0