查询:
Delete from test_table;
(我在过程中使用此删除命令来执行每日)
此表包含2个列名,如scenario_id,item_id,这2列是复合主键。所以每个scenario_id将有2百万个item_id,如何快速删除这个表。
答案 0 :(得分:1)
删除表的最快方法可能是DROP TABLE test_table
命令,并使用CREATE TABLE...
命令重新创建表。 DROP TABLE...
会立即删除表格。好吧,实际上它会将表格移动到recyclebin中。如果要完全删除表,您应该PURGE RECYCLEBIN
。
删除表中数据的其他方法是使用TRUNCATE TABLE...
。这比DROP TABLE...
略慢,但比DELETE FROM...
快得多。由于在截断表后无法回滚数据,因此在使用TRUNCATE TABLE
时应该小心。
答案 1 :(得分:0)
create new table as select * from old_table where ...
然后删除新旧数据并将其重命名为旧数据就会快得多。exchanging
分区实现类似的目标。