針對字串型主鍵或業務鍵,常見刪除場景:
-- 刪除 id 以 'B' 開頭的所有記錄
DELETE FROM table_a WHERE id LIKE 'B%';
% 代表任意長度字串 (含空字串)。id 有索引,LIKE 'B%' 可用索引範圍掃描 (type=range);LIKE '%B%' 或 LIKE '%B' 導致全表掃描。DELETE FROM table_a WHERE id LIKE 'B%' LIMIT 5000; 循環執行直到影響行數為 0。-- 刪除 id 精確等於 'B' 的記錄
DELETE FROM table_a WHERE id = 'B';
type=const/eq_ref),極快。LIMIT 1 防誤刪:DELETE FROM table_a WHERE id = 'B' LIMIT 1;DELETE FROM table_a WHERE id IN ('B001','B002','B003');
-- 或配合子查詢
DELETE FROM table_a WHERE id IN (SELECT id FROM temp_delete_list);
SELECT COUNT(*) FROM table_a WHERE id LIKE 'B%'; 確認影響範圍。BEGIN; 執行 DELETE → SELECT ROW_COUNT(); 核對 → COMMIT; 或 ROLLBACK;。CREATE TABLE table_a_bak AS SELECT * FROM table_a WHERE id LIKE 'B%';SLEEP(1) 減輕主從延遲。