启动truncate,然后写

时间:2013-04-23 11:43:53

标签: mysql pdo myisam

如果我在某个表上发起TRUNCATE,对该表执行的INSERT会发生什么?他们排队等到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

0 个答案:

没有答案