MAX()、倒序掃描會返回錯誤結果。INSERT ... SELECT ... WHERE 共享讀鎖阻塞 DML:為一致性讀加 S 鎖,滿足條件的行被阻塞。INSERT 觸發主鍵重複 → 當前事務持有 S 鎖;另一事務嘗試 UPDATE(需 X 鎖) → 死鎖回滾。「先插入判斷存在再更新」模式有風險。mysqldump 導出 .sql 導入時必須指定 --default-character-set=latin1,否則導入極慢。mysqldump 同時使用 --flush-logs 和 --master-data 會導致工具阻塞。| 場景 | 風險 | 對策 |
|---|---|---|
| 大表分區 | 統計函數錯誤 | 升級版本或應用層計算 |
| 高併發更新 | 無索引→表鎖 | 確保 WHERE 列有索引 |
| 異步寫入 | INSERT SELECT 阻塞 | 拆分為應用層讀寫 |
| 業務「插入或更新」 | 主鍵衝突死鎖 | 用 INSERT ... ON DUPLICATE KEY UPDATE 或 REPLACE |
| 跨字符集遷移 | 導入極慢 | 指定 --default-character-set=latin1 |
| 備份腳本 | flush-logs+master-data 卡死 | 分步執行或改用 Percona XtraBackup |