我使用JdbcTemplate的batchUpdate将大量数据插入到数据库表中
删除它的最快方法是什么?
我用
DELETE FROM tableName WHERE ID >= MIN_ID
其中 MIN_ID 是序列的startValue = 1000000
注意,我想从MIN_ID开始并保持ID低于1000000的数据
有更好的方法吗? 应遵循哪些最佳做法?
注意,我使用的是Oracle db
答案 0 :(得分:0)
如果您要删除整个表格,因为MIN_ID是startValue,您可以将TRUNCATE TABLE用作TRUNCATE TABLE tableName;
答案 1 :(得分:0)
如果要删除表的大部分,create new_table as select * from tableName where nvl(ID,-1) < MIN_ID;
和交换名称通常会更便宜。不要忘记交换索引并重新创建约束和其他对象。当然,如果有人可以在交换过程中插入表,则需要使用锁表或实现一些一致性机制来处理交换期间插入的数据。