更新时间:2024-01-12 GMT+08:00
DELETE
- 不支持DELETE语句中使用LIMIT。应使用WHERE条件明确需要更新的目标行。
- 在GMT-FREE模式下,不允许跨节点事务,因此删除HASH分布表中数据时,必须在WHERE条件中指定分布列等值过滤条件。
- 不支持多表删除。
- DELETE语句中必须有WHERE子句,避免全表扫描。
- DELETE语句中禁止不应使用ORDER BY、GROUP BY子句,避免不必要的排序。
- 如果需要清空一张表,建议使用TRUNCATE,而不是DELETE。
TRUNCATE会创建新的物理文件,并在事务结束时将原文件物理删除,清空磁盘空间。而DELETE会将表中数据进行标记,直到VACUUM FULL阶段才会真正清理磁盘空间。
- DELETE有主键或索引的表,WHERE条件应结合主键或索引,提高执行效率。
父主题: 数据库编程规范