12.23
- 带LOW_PRIORITY+IGNORE的删除(低优先级+忽略错误)
sql
-- 低优先级执行(不抢资源),忽略因外键/重复等导致的错误
DELETE LOW_PRIORITY IGNORE FROM user WHERE register_time < '2023-01-01';
- LOW_PRIORITY:等读操作完成再执行删除,适合业务高峰
- IGNORE:跳过报错行继续删,避免一条错导致全量失败
- 分区表定向删除(只删指定分区数据,高效)
sql
-- 删sales表中2024年第一季度分区数据(分区表专用)
DELETE FROM sales PARTITION (p2024q1);
-- 示例:删多个分区
DELETE FROM sales PARTITION (p2024q1, p2024q2);
- 只操作指定分区,不扫全表,大表删除速度极快
- 需表提前创建分区(如按时间/范围分区)
- USING子句多表删除(简洁关联删,MySQL 8+友好)
sql
-- 删除订单表中,用户表标记为删除的订单(USING写法更直观)
DELETE o
FROM orders o
USING orders o
JOIN user u ON o.user_id = u.id
WHERE u.is_deleted = 1;
- 关联逻辑清晰,和JOIN写法功能一致,适合复杂多表关联场景

浙公网安备 33010602011771号