MYSQL Table 放置期间超时
MYSQL Table Times Out During Drop
我有一个table有几亿行数据。我想删除table,但是我在table上执行的每个操作在运行后失去连接50,000+秒(约16小时),这是在60,000秒超时条件下我已经在数据库中设置了。我已经尝试使用 Drop Table 代码创建一个存储过程,认为如果我将信息发送到数据库来执行操作,它不需要连接来处理它,但它做同样的事情。只是超时了吗?或者我需要做其他事情吗?
改为TRUNCATE TABLE
。它在内部创建一个等效的但为空的 table,然后进行交换。即使对于非常大的 table.
,此技术也可能需要一秒钟的时间
如果您要删除 table 中的 大多数 ,那么通常会更快(有时快很多),
CREATE TABLE new LIKE real;
INSERT INTO new
SELECT ... FROM real
WHERE ... -- the rows you want to keep
为什么要删除所有内容?
有关大量删除的其他技术,包括从巨大 table 中删除大块,请参阅 https://mariadb.com/kb/en/mariadb/big-deletes/
我有一个table有几亿行数据。我想删除table,但是我在table上执行的每个操作在运行后失去连接50,000+秒(约16小时),这是在60,000秒超时条件下我已经在数据库中设置了。我已经尝试使用 Drop Table 代码创建一个存储过程,认为如果我将信息发送到数据库来执行操作,它不需要连接来处理它,但它做同样的事情。只是超时了吗?或者我需要做其他事情吗?
改为TRUNCATE TABLE
。它在内部创建一个等效的但为空的 table,然后进行交换。即使对于非常大的 table.
如果您要删除 table 中的 大多数 ,那么通常会更快(有时快很多),
CREATE TABLE new LIKE real;
INSERT INTO new
SELECT ... FROM real
WHERE ... -- the rows you want to keep
为什么要删除所有内容?
有关大量删除的其他技术,包括从巨大 table 中删除大块,请参阅 https://mariadb.com/kb/en/mariadb/big-deletes/